aixで複数のsedコマンドを使用する方法は?

aixで複数のsedコマンドを使用する方法は?

パターンを検索したいのですが、パターンの次の行が必要です。

Linuxでは、次のことを試してみました。

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

ただし、AIXではこれは機能せず、エラーが発生します。

0602-404関数を解析できません。

AIXでこれを達成する方法は?

答え1

p"}"の前にセミコロンがありません。

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

-e次のように複数のコマンドで作成することもできます。

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

(コマンドの間に/を忘れないでください;Np#

答え2

私の考えでは、SEDはAIX / * nixシステムで文字列を検索するのに最適な選択肢ではないかもしれません。主にファイルストリームの編集に使用されます。

grepファイルからパターンを検索するには、それを使用する必要があります。

grep -A 1 "pattern" file.txt パターンを一致させた後、次の行を提供します。

ありがとう、アラン

関連情報