1 2 5 7
我在文本文件中有这样的数字。如何使用 shell 脚本打印第三个数字?
答案1
shell 不是处理此类事情的好工具。有专门为此类任务设计的工具:
$ 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
如果您坚持在 shell 中执行此操作,您可以执行以下操作:
$ while read a b c rest; do echo "$c"; done < file
5
或者
$ nums=( $(cat file) )
$ echo "${nums[2]}"
5
答案2
您可以使用以下命令来显示文件所有行中的第三项(假设文本文件名为数字.txt):
while read one two three four; do
echo "$three";
done < numbers.txt
答案3
如果你想显示文本文件的第三行,类似:
cat yourfile | head -n 3 | tail -n 1
应该做这项工作。如果所有值都在一行中,您可能需要先对它们重新排序
echo 1 2 3 4 5 6 7 | sed -e "s# #\n#g"
1
2
3
4
5
6
7
还有很多其他可能的解决方案,这只是我首先想到的。