例えば、このような行が多数含まれたファイルがあります
AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm
DDD GAGAGAGAGA
AAA IIIII
BBB OOOO
CCC YYYYY
...等々
CCC で始まるすべての行の末尾に特定の単語を追加したい。
たとえば、「smile」という単語を追加したいので、結果は次のようになります。
AAA ATAGSGSGS
BBB Thhahahahahs
CCC lmmmmm smile
DDD GAGAGAGAGA
AAA IIIII
BBB OOOO
CCC YYYYY smile
どうすればそれができるのか教えていただけますか?
答え1
sed -i.backup '/^CCC/s/$/ smile/' data.txt
この sed コマンドとプログラムの詳細:
sed -i.backup
インプレースモード - 入力ファイルを編集し、(オプションで)サフィックス(.backup
)付きの元のファイルをバックアップします。/^CCC/
検索する正規表現 -^
CCC で始まる ( ) 文字列。s/$/ smile/
文字列の末尾 (s/$/
) を検索し、smile (smile/
) に置き換えます。
答え2
試す:
sed -E 's/^(CCC.+)/\1 smile/' <data.in >data.out
次の場所で編集することもできます:
sed -i -E 's/^(CCC.+)/\1 smile/' data.dat