簡體   English   中英

使用bash合並兩個txt文件

[英]Merging two txt files using bash

我有:由很多字符串和一個reference.txt(短)文件組成的txt文件提取,我的bash腳本執行以下操作:1)在循環txt文件的提取循環時,它對每個文件執行某些操作(不更改其組成) )之后2)應該將每個文件的組成與reference.txt的組成在指定位置合並

例如,每個工作文件的結尾看起來像

ATOM  13703  HA  GLN   100      83.311  32.648  23.654  0.1232 1.3870
ATOM  13704  HG2 GLN   100      82.879  33.518  22.168  0.0203 1.4870
ATOM  13705  HB2 GLN   100      84.606  31.260  21.824  0.0452 1.4870
ATOM  13706 HE22 GLN   100      84.225  34.975  20.004  0.4304 0.6000
ATOM  13707  OE1 GLN   100      82.389  32.538  19.564 -0.6098 1.6612
ATOM  13708  NE2 GLN   100      83.817  34.212  19.506 -0.9574 1.8240
ATOM  13709 HE21 GLN   100      83.663  34.375  18.529  0.4304 0.6000
TER
END

在這里,我應該用reference.pdb的全文替換最后一個字符串“ END”

HETATM 5420 CU    CU A 559      54.926  67.840  66.647  1.00 47.11          CU  
HETATM 5421 MG    MG A 560      58.119  65.472  53.773  1.00 12.89          MG  
HETATM 5422 CA    CA A 561      78.459  57.926  52.401  1.00 22.70          CA 
HETATM 7924 CU    CU B 270      62.144  60.705  47.277  1.00 40.39          CU  
HETATM 7925 CU    CU B 271      60.809  60.526  45.118  1.00 44.84          CU

最終獲得每個類似文件的文件:

ATOM  13695  O   GLN   100      82.103  30.697  24.719 -0.8042 1.6612
ATOM  13696  CB  GLN   100      83.798  31.641  22.204 -0.0664 1.9080
ATOM  13697  CG  GLN   100      83.606  33.044  21.616 -0.0210 1.9080
ATOM  13698  CD  GLN   100      83.251  33.196  20.146  0.7093 1.9080
ATOM  13699  H   GLN   100      85.355  33.328  24.357  0.2681 0.6000
ATOM  13700  OXT GLN   100      83.889  29.761  24.981 -0.8042 1.6612
ATOM  13701  HG3 GLN   100      84.467  33.577  21.792  0.0203 1.4870
ATOM  13702  HB3 GLN   100      82.992  31.127  22.034  0.0452 1.4870
ATOM  13703  HA  GLN   100      83.311  32.648  23.654  0.1232 1.3870
ATOM  13704  HG2 GLN   100      82.879  33.518  22.168  0.0203 1.4870
ATOM  13705  HB2 GLN   100      84.606  31.260  21.824  0.0452 1.4870
ATOM  13706 HE22 GLN   100      84.225  34.975  20.004  0.4304 0.6000
ATOM  13707  OE1 GLN   100      82.389  32.538  19.564 -0.6098 1.6612
ATOM  13708  NE2 GLN   100      83.817  34.212  19.506 -0.9574 1.8240
ATOM  13709 HE21 GLN   100      83.663  34.375  18.529  0.4304 0.6000
TER
HETATM 5420 CU    CU A 559      54.926  67.840  66.647  1.00 47.11          CU  
HETATM 5421 MG    MG A 560      58.119  65.472  53.773  1.00 12.89          MG  
HETATM 5422 CA    CA A 561      78.459  57.926  52.401  1.00 22.70          CA 
HETATM 7924 CU    CU B 270      62.144  60.705  47.277  1.00 40.39          CU  
HETATM 7925 CU    CU B 271      60.809  60.526  45.118  1.00 44.84          CU
END

使用sed,可將reference.pdb的內容插入END字符串之前:

sed '
/END/ {
r reference.pdb
a END
d
}
' workfile

編輯:

如果文件名存儲在變量中,則sed命令必須用雙引號引起來:

ref=reference.pdb
sed "
/END/ {
r $ref
a END
d
}
" workfile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM