パターンを一致させた後、2行の文字を置き換えようとします。これを行うには、次のコードを使用します。
sed '/some_pattern/{N;N;s/word1/word2/}' /etc/filesystems > /etc/filesystems.tmp && mv -f /etc/filesystems.tmp /etc/filesystems
このコマンドをテストしたところ、Linuxで正常に動作していることが確認されました。ただし、AIX で使用すると、次のエラー・メッセージが表示されます。
sed: Function /some_pattern/{N;N;s/word1/word2/} cannot be parsed.
どんなアイデアがありますか?
答え1
AIX sedでは、各コマンドは別々の行になければなりません。バラよりマニュアルページ そして試してみてください
sed '/some_pattern/{
N
N
s/word1/word2/
}'
答え2
これは私にとって効果的です
sed '/some_pattern/{N;N;s/word1/word2/;}'