Shell:ファイルから番号を取得する方法は?

Shell:ファイルから番号を取得する方法は?
1  2  5  7

テキストファイルにはこのような数字があります。シェルスクリプトを使用して3番目の数字を印刷するには?

答え1

シェルはこの種の作業には良いツールではありません。これらの作業のために特別に設計されたツールがあります:

$ awk '{print $3}' file
5

またはタブ区切りファイルの場合:

$ cut -f3 file
5

そうでない場合は、連続したスペースをタブに変換して引き続き使用できますcut

$ sed 's/  */\t/g' file | cut -f3
5

または、単一のスペースに変換して以下を使用しますcut -d' '

$ sed 's/  */ /g' file | cut -d' ' -f3
5

シェルでこれを行うには、次のようにします。

$ while read a b c rest; do echo "$c"; done < file
5

または

$ nums=( $(cat file) )
$ echo "${nums[2]}"
5

答え2

次のコマンドを使用して、ファイル内のすべての行に3番目の項目を表示できます(テキストファイルの名前が次のとおり)。数値.txt):

while read one two three four; do 
  echo "$three"; 
done < numbers.txt 

答え3

テキストファイルの3行目を表示するには:

cat yourfile | head -n 3 | tail -n 1 

仕事をしなければなりません。すべての値が 1 行にある場合は、まず順序を変更する必要があります。

echo 1 2 3 4 5 6 7  | sed -e "s# #\n#g"
1
2
3
4
5
6
7

他の多くの可能な解決策があります。これが私の心に浮かんだ最初の解決策です。

関連情報