テキストファイル内の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