У меня есть довольно большой выходной текстовый файл, в котором мне нужно удалить все строки между двумя шаблонами, но сохранить совпадение с шаблоном.
Файлы примерно похожи на следующий результат.
TEST #1
coef1 | 48.36895 3.32013 14.57 0.000 41.86141 54.87649
coef2 | -50.08894 10.47335 -4.78 0.000 -70.61697 -29.56092
|
indicator |
0 | .6647992 2.646627 0.25 0.802 -4.55925 5.888849
1 | 2.118701 5.225777 0.41 0.686 -8.19621 12.43361
|
year |
2 | -.4324005 2.231387 -0.19 0.847 -4.836829 3.972028
3 | -.362762 1.97184 -0.18 0.854 -4.254882 3.529358
|
_cons | 16.95753 6.342342 2.67 0.008 4.526383 29.38869
TEST #2
coef2 | 48.36895 3.32013 14.57 0.000 41.86141 54.87649
coef3 | -50.08894 10.47335 -4.78 0.000 -70.61697 -29.56092
|
year |
4 | .6647992 2.646627 0.25 0.802 -4.55925 5.888849
5 | 2.118701 5.225777 0.41 0.686 -8.19621 12.43361
|
idnumber |
6 | -.4324005 2.231387 -0.19 0.847 -4.836829 3.972028
7 | -.362762 1.97184 -0.18 0.854 -4.254882 3.529358
|
_cons | 16.95753 6.342342 2.67 0.008 4.526383 29.38869
Мне нужно взять следующий результат и удалить все строки между «year» и «_cons», но мне нужно сохранить строку, начинающуюся с «_cons». Желаемый результат выглядит так:
TEST #1
coef1 | 48.36895 3.32013 14.57 0.000 41.86141 54.87649
coef2 | -50.08894 10.47335 -4.78 0.000 -70.61697 -29.56092
|
indicator |
0 | .6647992 2.646627 0.25 0.802 -4.55925 5.888849
1 | 2.118701 5.225777 0.41 0.686 -8.19621 12.43361
|
year |
_cons | 16.95753 6.342342 2.67 0.008 4.526383 29.38869
TEST #2
coef2 | 48.36895 3.32013 14.57 0.000 41.86141 54.87649
coef3 | -50.08894 10.47335 -4.78 0.000 -70.61697 -29.56092
|
year |
_cons | 16.95753 6.342342 2.67 0.008 4.526383 29.38869
Я написал следующий сценарий (под OS X):
sed '/^ +year/,/^ +_cons/{/^ +year/!{/^ +_cons/!d}}' input.txt >output.txt
, но я получил следующую ошибку:
sed: 1: "/^ +year/,/^ +_cons/{/^ ...": extra characters at the end of d command
Я не уверен, что этот подход вообще верен, потому что я не могу кажется, заставить sed выполнить. Подходит ли здесь sed или мне следует использовать awk?
И последнее замечание: мне нужен этот сценарий для работы с относительно общей установкой Unix. Я должен отправить это кому-то, кто должен выполнить это при очень простой (я думаю) установке AIX. Ни Perl, ни Python, и я не могу много устранять неполадки при их установке по электронной почте.