とらりもんHOME  Index  Search  Changes  Login

とらりもん - sed Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

!例: 文字列の中に記号を挿入する:
$ echo 2012123 | sed 's/\(2...\)\(...\)/\1_\2/'
2012_123
$ echo 2012123 | sed 's/\(2...\)/\1_/'
2012_123
この例のポイント:
* まず2012123という文字列を, 2012と123の2つの部分に分けたい。
* 文字列の前半部(2012)が, \(2...\)という表現で切り出され, \1と呼ばれる。
* 文字列の後半部(123)が, \(...\)という表現で切り出され, \2と呼ばれる。
* 前半部と後半部の間に, 挿入したい記号, ここではアンダーバーを入れるように命令。
* 第2例のように, 前半部だけを手がかりに挿入することもできる。
* ちなみにこの例は, 年とDOYが連続して表されているものを扱う時によく使う。
* 応用:
$ echo 20181123 | sed 's/\(2...\)\(..\)\(..\)/\1\/\2\/\3/'
2018/11/23


!"ab"と"defg" の間に、"c"を挿入する場合。

$ echo "abdefg" | sed 's/\(ab\)/\1c/'

abcdefg

※\(   \) で囲んだものが、\1 で呼び出されている。