数字の間にスペースがないシミュレーションのテキストファイルがあります。以下に例を示します。小数点(13)を基準に数字を区切りたいです。
5.656854249492415.594870951694315.594870951694315.594870951694321.466252583998021.466252583998021.466252583998027.4809024597083
私は次の出力が欲しい:
5.6568542494924
15.5948709516943
15.5948709516943
15.5948709516943
21.4662525839980
21.4662525839980
21.4662525839980
27.4809024597083
以下のsedコマンドを試しましたが、うまくいきません。
sed -i 's/\(.\{14\}\)/\1 /g' input.txt
役立つアドバイスをいただきありがとうございます。
ありがとう
ベストアンサー1
私はあなたがこれを行うことができると思いますgrep
:
$ grep -Eo '[0-9]+\.[0-9]{13}' < input.txt
5.6568542494924
15.5948709516943
15.5948709516943
15.5948709516943
21.4662525839980
21.4662525839980
21.4662525839980
27.4809024597083
これは、前の一致が終了した位置から始まり、次の一致を見て重複する一致を見つけることができないために機能します。[0-9]+\.[0-9]{0,13}
数字ではなく数字で区切られている限り、より短い数字を許可するように変更できます。これも一致がグリーディーであるために機能するため、数字が13個の場合は、次の数字に進む前に最初の数字のすべての数字を切り捨てます。