我有一个包含很多行的文件,例如
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}}'
这是假设您要打印的所有数字都出现在第 3 列或之后。
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
不是防弹的,也没有前面给出的解决方案那么优雅,但它显示了用于确定这是否是数字的内容。
while read num alpha rest; do
[[ "$rest" ]] && printf "%s\n" $rest # <-- variable is unquoted
done < filename