sedで指定した行の先頭・末尾に文字列を追記する

sedで、指定した行(特定の文字列から始まる行など)の先頭や末尾に文字列を追記するには、置換対象に正規表現で先頭(^)もしくは末尾($)を指定すればいい。

●指定行の先頭に文字列を追加する場合

1
2
sed '/文字列/s/^/追加文字列/g' 対象ファイル # 文字列を検索して行を指定
sed '◯s/^/追加文字列/g' 対象ファイル # 行番号を直接指定
[root@test-node ~]# cat /work/test_1.txt
aaaaa
bbbbb
ccccc
ddddd
eeeee
fffff
ggggg
[root@test-node ~]#
[root@test-node ~]# # 「ccc」を含む文字列をコメントアウトする
[root@test-node ~]# sed '/ccc/s/^/# /g' /work/test_1.txt
aaaaa
bbbbb
# ccccc
ddddd
eeeee
fffff
ggggg
[root@test-node ~]#
[root@test-node ~]# # 5行目をコメントアウトする
[root@test-node ~]# sed '5s/^/# /g' /work/test_1.txt
aaaaa
bbbbb
ccccc
ddddd
# eeeee
fffff
ggggg
Sponsored Links

●指定行の末尾に文字列を追加する場合

1
2
sed '/文字列/s/$/追加文字列/g' 対象ファイル # 文字列を検索して行を指定
sed '◯s/$/追加文字列/g' 対象ファイル # 行番号を直接指定
[root@test-node ~]# cat /work/test_1.txt
aaaaa
bbbbb
ccccc
ddddd
eeeee
fffff
ggggg
[root@test-node ~]#
[root@test-node ~]# # 「ddd」を含む行の末尾に文字列追加
[root@test-node ~]# sed '/ddd/s/$/-------/g' /work/test_1.txt
aaaaa
bbbbb
ccccc
ddddd-------
eeeee
fffff
ggggg
[root@test-node ~]#
[root@test-node ~]# # 6行目の末尾に文字列追加
[root@test-node ~]# sed '6s/$/-------/g' /work/test_1.txt
aaaaa
bbbbb
ccccc
ddddd
eeeee
fffff-------
ggggg

 

sed & awkプログラミング 改訂版 (A nutshell handbook)

sed & awkプログラミング 改訂版 (A nutshell handbook)

  • 著者Dale Dougherty,Arnold Robbins
  • 価格¥ 4,428(2019/04/16 22:03時点)
  • 出版日1997/10/01
  • 商品ランキング164,751位
  • 大型本461ページ
  • ISBN-104900900583
  • ISBN-139784900900585
  • 出版社オライリー・ジャパン

Written by blacknon

インフラエンジニア(…のつもり)。 仕事で使うならクライアントはWindowsよりはUNIXの方が好き。 大体いつも眠い。

Leave a Comment

メールアドレスが公開されることはありません。

*