次のような行が多いファイルがあります。
1 jfkdajfd 1 2 3 5
2 fkldfjld
3 fdkfloaf 9 10
4 fldfldkf
5 fdskf;ak 12 1 4
私はすべての番号を取得し、ファイルの1列に入れたいと思います。
1
2
3
5
9
10
12
1
4
どうすればいいですか?ありがとう
答え1
努力する
awk '{ for (i = 1; i <= NF; i++) if ($i + 0 == $i) print $i }' < input > output
有効な数字x + 0 == x
かどうかをテストし、元の文字列を印刷するために使用します。数値(浮動小数点数、負数、および多くの実装では16進数を含む)が必要なのか、他の数字が必要なのかは、ユーザーによって異なります。x
awk
awk
答え2
どうですか?
tr -cs 0-9 '[\n*]' < input | grep . > output