1

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

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

我怎样才能做到这一点?谢谢

4

3 回答 3

2

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

awk '{for (i=3;i<=NF;++i) {print $i}}'

这是假设您要打印的所有数字都出现在第 3 列或之后。

于 2012-11-16T15:57:24.267 回答
0
cat file | while read line
do
  for i in $(echo ${line})
  do
    isnumeric=$(echo ${i} | grep -q [0-9]; echo ${?})
    if [ ${isnumeric} -eq 0 ]
    then
      echo ${i} >> outfile
    fi
  done
done

不是防弹的,也没有前面给出的解决方案那么优雅,但它显示了用于确定这是否是数字的内容。

于 2012-11-16T16:20:28.193 回答
0
while read num alpha rest; do 
    [[ "$rest" ]] && printf "%s\n" $rest   # <-- variable is unquoted
done < filename
于 2012-11-16T23:34:31.747 回答