とらりもんHOME  Index  Search  Changes  Login

sed

例: 文字列の中に記号を挿入する:

$ 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 で呼び出されている。
Last modified:2019/10/01 13:31:15
Keyword(s):
References:[とらりもんHOME]