複数のファイルで特定の文字列を置き換えたい状況があります。
文字列の置き換えAAA別の文字列を使用してください血液脳関門しかし、AAAで始まるかAAAで終わる文字列がたくさんあるので、34行で文字列を1つだけ置き換え、残りは変更せずに保持したいと思います。
すべてのファイルで、この文字列が34行目になるように行番号として指定できますか?
答え1
sedに行番号を指定し、awkにNR(レコード数)を指定できます。
awk 'NR==34 { sub("AAA", "BBB") }'
コマンドラインで複数のファイルを指定するには、ファイル番号レコード(FNR)を使用します。
awk 'FNR==34 { sub("AAA", "BBB") }'
または
sed '34s/AAA/BBB/'
内部交換のためのsedの使用
sed -i '34s/AAA/BBB/' file_name
答え2
file_recordの3行目を変更したいとしましょう。
sed -i "s/`head -3 file_record | tail -1 `/replaced/" file_record