сопоставить шаблон и напечатать последующие строки - PullRequest
0 голосов
/ 10 ноября 2011

есть 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 ]

3 голосов
/ 10 ноября 2011
for i in *.pdb; do sed '1,/TER/d' $i > ${i/File/}; done
0 голосов
/ 10 ноября 2011

Это может сработать:

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
...