Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sed 匹配图案并打印后续行_Sed_Design Patterns_Match - Fatal编程技术网

Sed 匹配图案并打印后续行

Sed 匹配图案并打印后续行,sed,design-patterns,match,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

有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\u 0.pdb>1\u 0.pdb的事情。但这一次只能处理一个文件…是否有一个一次性处理所有200个文件的解决方案。。。输出文件的名称相同,只是从名称中删除了“文件”…

这可能有效:

for i in *.pdb; do sed '1,/TER/d' $i > ${i/File/}; done
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
这可能会奏效:

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

+1.更好的是,{0..199}中的i的
;执行sed'1,/TER/d'文件1_$i.pdb>1_$i.pdb;完成
——这将允许多次运行,并在必要时进行调整。(使用
*.pdb
会错误地捕获以前运行的输出文件。)将“.pdb”替换为“File.pdb”,问题就解决了。我假设,“200文件”只是一个cca示例,而不是所有情况下的确切数字。更好的是,{0..199}中的i的
;执行sed'1,/TER/d'文件1_$i.pdb>1_$i.pdb;完成
——这将允许多次运行,并在必要时进行调整。(使用
*.pdb
会错误地捕获以前运行的输出文件。)将“.pdb”替换为“File.pdb”,问题就解决了。我假设,“200文件”只是一个cca示例,而不是所有情况下的确切数字。