使用 shell 脚本将数字行放入列中

使用 shell 脚本将数字行放入列中

我有一个包含很多行的文件,例如

1 jfkdajfd   1 2 3 5
2 fkldfjld   
3 fdkfloaf   9 10
4 fldfldkf 
5 fdskf;ak   12 1 4

我想获取所有数字并将它们放入文件的一列中,例如

 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它来测试是否x是有效awk数字,然后打印原始字符串。由您决定是否需要awk数字(这包括浮点数、负数,在许多实现中还包括十六进制数)或其他数字。

答案2

怎么样

tr -cs 0-9 '[\n*]' < input | grep . > output

相关内容