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
他の多くの可能な解決策があります。これが私の心に浮かんだ最初の解決策です。