Как работать с несколькими командами sed в aix?

Я хочу искать шаблон, и мне нужна следующая строка этого шаблона.

В Linux я пробовал, как показано ниже, и это сработало.

sed -n '/pattern/{N;p}' ouputfile.txt 

Но в AIX это не работает и бросает ошибку, поскольку

0602-404 Функция не может быть проанализирована

Как достичь этого в AIX?

Вам не хватает точки с запятой после p перед `} '

 sed -n '/pattern/{N;p;}' ouputfile.txt 

Вы также можете записать его в виде нескольких команд:

 sed -n -e '/pattern/{' -e 'N;p' -e '}' ouputfile.txt 

И самый безопасный и понятный способ заключается в том, чтобы разложить его на линии, поскольку этот метод позволяет размещать комментарии в режиме sed в коде:

 sed -ne ' # lines matching pattern /pattern/{ N; # grab the next line into the pattern space p; # print the pattern space holding the current+next line } ' outputfile.txt 

(не забывайте, что между командами N / p и # )

Я думаю, что SED не может быть отличным вариантом для поиска строк в системах AIX / * nix. Он в основном используется для редактирования файловых потоков.

Вам нужно использовать grep для поиска шаблона в файле.

grep -A 1 "pattern" file.txt предоставит вам следующую строку после соответствующего шаблона.

Спасибо, Арун