web-dev-qa-db-ja.com

行末にsedで単語を追加する

ファイルに次のようなコードブロックがあります。

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2

tc_キーワードが含まれるすべての行を検索し、それらの行の末尾にstatus=Dを追加します。したがって、上記のエントリは次のようになります

BalancerMember http://snode1:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode1 status=D
BalancerMember http://snode2:80 min=1 max=1000 loadfactor=1  timeout=30 keepalive=on route=tc_snode2 status=D

これを達成するために次のコマンドを使用しています。

sed -i '/tc_/a status=D' app.conf

しかし、status=Dが改行の後であることがわかります。これには改行は必要ありません。 ''(スペース)を追加する必要があります。

6
Zama Ques

試す

sed  -e '/tc_/s/$/ status=D/'

どこ

  • /tc_/ tc_が見つかった行、
  • s代替、
  • /$行末、
  • / status=D/この文字列

問題がなければ、-iを追加して編集します。

16
Archemar