単語を見つけて次の2行目の単語のみを置き換える方法

単語を見つけて次の2行目の単語のみを置き換える方法

ファイル名Staff.txtとサンプルコンテンツは次のとおりです。

JHON
MANAGER
10000

JHONファイル内で探したいと思い、その行の後の2行目の内容を別の単語/番号に変更したいと思います。

どうすればいいですか?

ベストアンサー1

Edを使ってください!

ed -s staff.txt <<< $'/JHON/+2s/.*/4242\nw\nq'

-sこれはファイルのスクリプトモード()でedを呼び出しstaff.txt、ここで引用されたANSI文字列に次のコマンドを送信します。

  • ()を含む行JHONとその行を超えて2行を探します。+2
  • .*その行で()内のすべての項目を検索して置き換えます。4242
  • wディスクへのファイルの書き込み
  • qそれによって編集されました

真ん中にあるのは\n他のedコマンドを区別します。

または、次のようにc行を変更できます。

ed -s staff.txt <<< $'/JHON/+2c\n4242\n.\nw\nq'

ここで、代替テキストはcピリオド(\.\n)で終わる(コマンドの後に)別々に入力する必要があります。

おすすめ記事