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

使用shell脚本将数字行放入列中,shell,awk,Shell,Awk,我有一个有很多行的文件,比如 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 我怎样才能做到这一点? 谢谢在您的情况下,看起来您可以这样做: awk '{for (i=3;i<=NF;++i) {print $i}}' awk'{for(i=3;i 不是防

我有一个有很多行的文件,比如

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
我怎样才能做到这一点?
谢谢

在您的情况下,看起来您可以这样做:

awk '{for (i=3;i<=NF;++i) {print $i}}'
awk'{for(i=3;i
不是防弹的,也不像前面给出的解决方案那样优雅,但它显示了用于确定这是否是数字的内容。

而read num alpha rest;do
while read num alpha rest; do 
    [[ "$rest" ]] && printf "%s\n" $rest   # <-- variable is unquoted
done < filename

[[“$rest”]&&printf“%s\n”$rest#否则,您可以为(i=3;i@axiom/[0-9]+//将匹配“foo3bar”等。您需要前后锚定它为/^[0-9]+$/.True。非常感谢您指出这一点。它应该是:
awk'{for(i=3;i文件中的行号是多少?也有人问
while read num alpha rest; do 
    [[ "$rest" ]] && printf "%s\n" $rest   # <-- variable is unquoted
done < filename