異なる数の数字の後に新しい行を挿入する

異なる数の数字の後に新しい行を挿入する

テキストファイル内の10個の数字、「-」、1〜4個の数字で構成される「数字」文字列の後に、新しい行または区切り文字を挿入する必要があります。

例:

blahblahrandomtext,1234567890-1234blahblah

しなければならない:

blahblahrandomtext,1234567890-1234, blahblah

または:

blahblahrandomtext,1234567890-1234

blahblah

最初の数値セットは常に10文字で、その後の数字は1、2、3、または4文字になります。

1234567890-1
1234567890-12
1234567890-123
1234567890-1234

同様の操作でsedを頻繁に使用しますが、最後の数値セット(1〜4文字の範囲)を処理する方法が見つかりません。

ベストアンサー1

sed回避策(区切り記号の挿入,):

sed -E 's/(^|[^0-9])[0-9]{10}-[0-9]{1,4}/\1&, /' file
  • -E- 拡張正規表現の適用
  • (^|[^0-9])行の先頭または数字ではないものと一致します。これにより、10桁を超える数値が一致しません。
  • &- 一致する文字列全体を指します。

出力:

blahblahrandomtext,1234567890-1234, blahblah

おすすめ記事