[英]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.