- blogs:
- cles::blog
2020/03/04

sed で複数行にまたがる文字の置換を行う

sed には -z
という区切りを NULL 文字にするオプションがあります。
これは xargs のように find -print0
と組み合わせて使うためにあるのだと思っていましたが、ふと、これを使ったら複数行にマッチするパターンが書けたりするのかもと思って調べてみたら、意外と簡単に実現できることが分かったのでメモ。
-z, --null-data
NUL 文字で行を分割する
以下の例を見ると分かりやすいと思いますが、sed は標準では行末の \n にマッチさせることができません。
-z
なしのとき(\n区切り)
$ cat <<EOF | sed 's/\n/\n\n/g'
> 1
> 2
> 3
> EOF
1
2
3
-z
ありのとき(NULL文字区切り)
$ cat <<EOF | sed -z 's/\n/\n\n/g'
> 1
> 2
> 3
> EOF
1
2
3
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11585
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
- 居酒屋 八(ひらく) (3)
- iPad をプレゼンタイマーにする (1)
- 退去通知もネットで可能な時代に (1)
- ケーブルカーのケーブルが切... (1)
- Visual Studio 2017/2019 で ... (1)
閲覧数が多いエントリ
1 . Solr-rubyで複数のドキュメントを一括Post(32916)
2 . Windows 10 で勝手にログアウトされないようにする(26816)
3 . Word で数式がグレーアウトされていて挿入できないときは(24713)
4 . リモートデスクトップで Alt + PrtSc と同じことをするには(20967)
5 . Visual Studio 2017/2019 で scanf() がエラー(C4996)になるときは(20410)
2 . Windows 10 で勝手にログアウトされないようにする(26816)
3 . Word で数式がグレーアウトされていて挿入できないときは(24713)
4 . リモートデスクトップで Alt + PrtSc と同じことをするには(20967)
5 . Visual Studio 2017/2019 で scanf() がエラー(C4996)になるときは(20410)
cles::blogについて
Referrers