サイドバーの壁紙
博主头像
tin博主等级

子の曰わく、我れ三人行なえば必ず我が師を得(う)。其の善き者を択びてこれに従う。其の善からざる者にしてこれを改む。

  • 累積執筆 72 記事
  • 累計作成 32 タグ
  • 累計受入 2 コメント

目 次CONTENT

記事目次

sedで文字列の指定場所に区切り文字を追加

tin
tin
2025-01-08 / 0 コメント / 0 いいね! / 43 読み / 243 文字

1.背景

文字列の指定場所に,などの区切り文字を追加する場合、
sed 's/^\(.\{9\}\)/\1,/'を使いました。
▼例:

tin@tin-pc:~$ echo 123456789ABCDEFG | sed 's/^\(.\{0,9\}\)/\1,/'
123456789,ABCDEFG

2.質問

sed 's/^\(.\{9\}\)/\1,/'
sed 's/^\(.\{0,9\}\)/\1,/'の違いはなんでしょうか。

3.分析

^(.{9}) は、行の先頭 (^) から ちょうど9文字 を抽出し、後ろにカンマが追加されます。9文字未満の場合、何もしません。
^(.{0,9}) は、行の先頭 (^) から 最大で9文字まで を抽出し(0~9文字の範囲)、カンマが追加されます。9文字未満の場合でも、その行の後ろにカンマが追加されます。
▼検証:

tin@tin-pc:~$ echo 12345678 | sed 's/^\(.\{9\}\)/\1,/'
12345678
tin@tin-pc:~$ echo 12345678 | sed 's/^\(.\{0,9\}\)/\1,/'
12345678,
tin@tin-pc:~$
0
  • 0

コメント欄