匹配模式并打印后续行

时间:2011-11-10 07:12:20

标签: sed design-patterns match

有200个文件名为File1_0.pdb,File1_60.pdb等....它看起来像:

ATOM      1  N   VAL     1       8.897 -21.545  -7.276  1.00  0.00
ATOM      2  H1  VAL     1       9.692 -22.015  -6.868  1.00  0.00
ATOM      3  H2  VAL     1       9.228 -20.766  -7.827  1.00  0.00
ATOM      4  H3  VAL     1       8.289 -22.236  -7.693  1.00  0.00
TER
ATOM      5  CA  VAL     1       8.124 -20.953  -6.203  1.00  0.00
ATOM      6  HA  VAL     1       8.072 -19.874  -6.345  1.00  0.00
ATOM      7  CB  VAL     1       6.693 -21.515  -6.176  1.00  0.00
ATOM      8  HB  VAL     1       6.522 -22.024  -5.227  1.00  0.00
ATOM      9  CG1 VAL     1       5.684 -20.370  -6.330  1.00  0.00
ATOM     10 1HG1 VAL     1       5.854 -19.861  -7.279  1.00  0.00

我必须在TER之后提取部分并放入一个不同的文件......这必须在所有200个文件上完成。我做了类似sed '1,/TER/d' File1_0.pdb > 1_0.pdb的事情。但这一次可以用于一个文件...可以一次性解决所有200个文件...输出文件命名相同只是“文件”从名称中删除...

2 个答案:

答案 0 :(得分:3)

for i in *.pdb; do sed '1,/TER/d' $i > ${i/File/}; done

答案 1 :(得分:0)

这可能有效:

seq 0 200| xargs -i -n1 cp File1_{}.pdb 1_{}.pbd # backup files   
sed -si '1,/TER/d' 1_{0..200}.pdb                # edit files separately inline