次の形式のファイルに取り組んでいます。
12345:ABCDEFG
789:HIJK
4963158:LMNOPQRSTUV
各行はさまざまな長さで始まり、その後にコロン、さまざまな長さの文字列が続きます。以下のように、各行の先頭にある数字だけをキャプチャして新しいファイルに入れたいと思います。
12345
789
4963158
これは私が得たものに最も近いですが、数字だけでなく行全体を印刷します。
sed -r 's/([^0-9]+d)(:)([A-Z]+)$/\1/' example.txt >> justnumbers.txt
私が文法的に何を間違っているのだろうか?
ベストアンサー1
時には問題を別の方法で見ると、より簡単な答えが得られます。
「以前のすべての数字を維持したい」と考えるのは非常に合理的です。もう一つの観点では、「最初から最後まですべてを捨てたい」と見ることもできる。
これにより
s/:.*//
sedコマンドで。
例えば
$ cat x
12345:ABCDEFG
789:HIJK
4963158:LMNOPQRSTUV
$ sed 's/:.*//' x
12345
789
4963158