У меня есть большие текстовые файлы, как важные входы, выглядит какУдалить столбцы с помощью команды оболочки
# USER_IP: 37.1.62.12 INTERFACE CHARMM-GUI
@<TRIPOS>MOLECULE
lig.pdb
54 56 1 0 0
SMALL
NO_CHARGES
@<TRIPOS>ATOM
1 CAA 2.9880 0.1910 12.9830 C.3 1 P0G 0.0000
2 CAB 1.3730 1.7370 10.6500 C.3 1 P0G 0.0000
3 CAC -0.5820 0.2000 10.5350 C.3 1 P0G 0.0000
4 OAD -5.1220 5.7850 8.9220 O.2 1 P0G 0.0000
5 OAE -2.7610 6.1960 4.9010 O.3 1 P0G 0.0000
6 OAF -0.8620 0.4430 6.3540 O.3 1 P0G 0.0000
7 CAG 0.7160 -2.5530 14.2490 C.ar 1 P0G 0.0000
8 CAH 0.1300 -3.0010 13.0720 C.ar 1 P0G 0.0000
...
here in each of file I have a lot of strings:
6 OAF -0.8620 0.4430 6.3540 O.3 1 P0G 0.0000
7 CAG 0.7160 -2.5530 14.2490 C.ar 1 P0G 0.0000
8 CAH 0.1300 -3.0010 13.0720 C.ar 1 P0G 0.0000
моя задача использует какой-то скрипт Linux и сочетание АФК, SED для удаления всех столбцов из этих фрагментов, за исключением первых 1-5 столбцов, которые имеют для меня значение. Таким образом, пример файла после его обработки должен быть как
# USER_IP: 37.1.62.12 INTERFACE CHARMM-GUI
@<TRIPOS>MOLECULE
lig.pdb
54 56 1 0 0
SMALL
NO_CHARGES
@<TRIPOS>ATOM
1 CAA 2.9880 0.1910 12.9830
2 CAB 1.3730 1.7370 10.6500
3 CAC -0.5820 0.2000 10.5350
4 OAD -5.1220 5.7850 8.9220
5 OAE -2.7610 6.1960 4.9010
6 OAF -0.8620 0.4430 6.3540
7 CAG 0.7160 -2.5530 14.2490
8 CAH 0.1300 -3.0010 13.0720
проблема здесь всегда в одном типе файлов У меня есть несколько строк (его количество может отличаться) до тех сегментов, которые должны быть обработаны. Таким образом, только идея состоит в том, чтобы использовать ниже строки
@<TRIPOS>ATOM
в качестве эталона и начинает отсчитывать строки столбцы, которые должны быть обработаны только после этой контрольной строки
Я был бы благодарен за несколько примеров, и его краткого объяснения
Глеб
Я не был успешно с установкой 'NF = 5' на OS X awk. Было бы неплохо, если бы это сработало, но, похоже, оно не работает портативно. – tripleee
Работает ли он, если вы установили 'NF = 5' и' $ 1 = $ 1'? Я подозреваю, что перестройка строки не запускается в BSD awk, просто установив «NF», но мы действительно хотим установить «NF», чтобы избежать лишних разделителей полей в конце вывода. – Wintermute
Да, это работает. Острота! – tripleee