我有很多行的文件,像把數字的行成一列與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
我該如何做到這一點? 感謝
我有很多行的文件,像把數字的行成一列與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
我該如何做到這一點? 感謝
在你的情況下,它看起來像你可以這樣做:
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
是文件中的行號? –
另請問[在Unix和Linux](http://unix.stackexchange.com/q/55910/4667) –