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
while read num alpha rest; do 
    [[ "$rest" ]] && printf "%s\n" $rest   # <-- variable is unquoted
done < filename
于 2012-11-16T23:34:31.747 に答える
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 に答える