我想把一个文件中的一列,即第7列(即母文件)放到许多文件的结尾列(即child1.c,chil2.c child3.c等等)
motherfile
38 WAT1 1 TIP3 OH2 OT -0.834000 15.9994 0
39 WAT1 1 TIP3 H1 HT 0.417000 1.0080 0
40 WAT1 1 TIP3 H2 HT 0.417000 1.0080 0
41 WAT1 2 TIP3 OH2 OT -0.834000 15.9994 0
42 WAT1 2 TIP3 H1 HT 0.417000 1.0080 0
child1.c
O -5.689000 -0.628000 -10.423000
H -6.663000 -0.744000 -10.224000
H -5.166000 -1.340000 -9.957000
O 11.405000 3.612000 1.674000
H 11.331000 4.609000 1.663000
child2.c
O -4.689000 -0.628000 -10.423000
H -5.663000 -0.744000 -10.224000
H -6.166000 -1.340000 -9.957000
O 1.4405000 3.612000 1.674000
H 14.331000 4.609000 1.663000
依旧......
我尝试使用
awk '{f1 = $0; getline<"motherfile"; print f1, $7}' < child1.c > newchild1.c
但这仅用于向一个文件添加一列,我想将该列放到多个文件中。
注意newchild.c需要像这样。
O -5.689000 -0.628000 -10.423000 -0.834000
H -6.663000 -0.744000 -10.224000 0.417000
H -5.166000 -1.340000 -9.957000 0.417000
O 11.405000 3.612000 1.674000 -0.834000
H 11.331000 4.609000 1.663000 0.417000
答案 0 :(得分:1)
在awk
中,使用>
或>>
打印语句可以redirected to a file。以下示例将motherfile
的第7列读入内存,并写入一个新文件,其中包含字符串new
,包括已保存的列。
awk 'NR==FNR{a[FNR]=$7;next}{print$0,a[FNR]>"new"FILENAME}' motherfile
child1.c child2.c ...