50 多くのファイルの特定の文字列を置き換えたい状況があります 文字列AAAを別の文字列BBBで置き換えますが、AAAで始まる文字列またはAAAで終わる文字列がたくさんあります。34行目の1つだけを置き換え、他の文字列はそのままにしておきます。 行番号で指定することは可能ですか?すべてのファイルで、この文字列は正確に34行目にあります。 sed awk — クリプト ソース
82 行番号はsedで、NR(レコード数)はawkで指定できます。 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 — ヴァナガス ソース
-3 file_recordの3行目を置き換えたいとします: sed -i "s/`head -3 file_record | tail -1 `/replaced/" file_record — ラマン ソース 頭の前と後に-1 ...ここに戻って引用符を使用するには、それを取っていないこと — ラマン 1 これはうまくいきません。いくつかの強力なエスケープが必要です。そして、3行目が他の場所で複製された場合はどうなりますか? — Sparhawk