質問1

質問1

script1.sh、、、script2.sh...、10のbashシェルスクリプトがあるとしますscript10.sh。最初は10個のファイルがすべて同じです。

では、各スクリプトで2つのことを変更したいと思います。

  1. 各ファイルの特定の行(たとえば、8行)を変更したいと思います。つまり、8行目のすべての項目を削除して次に置き換えます。「言葉なし」文字列を指定します。たとえば、次のように"This is line 8." なります。この問題しかし、彼らは置き換えを使用したいと思い、私は"AAA"8"BBB"行(それが何でも)を変更に変更したいと思います"This is line 8."

  2. 各ファイルで別の特定の行(21行など)を変更し、次に置き換えたいと思います。「変える」私が指定した文字列です。たとえば、script1.sh21行をに変更し、21行を21行に変更したいと思います。"XYZ"本質的に、これは関数へのいくつかの呼び出しです。script2.sh"PQR"script3.sh"ABC"(1)上記と同じです。ただし、すべてのファイルではなく別々のファイルで変更を行い、1つではなく10個の異なる文字列を指定することを除いてください。だから得るために(2)ここで、たぶん私が電話するかもしれません。(1)10の異なった時間、異なった変数。

bashvi、、などの一般的なLinuxプログラムを使用するソリューションに興味がありますawkgawk

ベストアンサー1

for file in f1 f2; do
  sed -i '8s/^.*$/foo/' "$file"
done

おすすめ記事