次のような多くの行を含むファイルがあります
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列目以降にあることを前提としています。
while read num alpha rest; do
[[ "$rest" ]] && printf "%s\n" $rest # <-- variable is unquoted
done < filename
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
防弾ではなく、以前に与えられたソリューションほどエレガントではありませんが、これが数値であるかどうかを判断するために何が使用されているかを示しています。