複数のファイル(同じディレクトリ)の文字列を条件に置き換えます。

複数のファイル(同じディレクトリ)の文字列を条件に置き換えます。

例:

ファイル1:

Name: abc
Number: 325
Code: 0

ファイル2:

Name: xyz
Number: 578
Code: 0

ファイル3:

Name: ttt
Number: 356
Code: 0

ファイル4:

Name: nnn
Number: 228
Code: 0

ファイル5:

Name: bnb
Number: 434
Code: 0

問題はどう変わるかだ。パスワード到着1提供される数字はい3xxまたは2xx。したがって、File2とFile5は変更されていません。

ファイルには約100行の行がたくさんありますが、これはファイル内の1つの文字列(x行)を置き換える方法の簡単な例ですが、ファイル内の他の文字列(y行)が一致する場合にのみ当てはまります。

ベストアンサー1

これを行う必要があります。

sed -i 's/^Code: 0$/Code: 1/' $(grep -l '^Number: [23]' File*)
  • 部品sedが物理的に交換されました
  • このgrep -l ... File*セクションには、名前が「File *」と一致し、行または始まるすべてのNumber: 2ファイルが一覧表示されます。Number: 3
  • $(...)コマンド周辺の構成はgrep次のとおりです。コマンドの置き換えリストされたファイルはgrep次のように供給されます。sed

おすすめ記事