题目描述
给定一个文本文件 file.txt,请只打印这个文件中的第十行。
Example1:
假设 file.txt 有如下内容: Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 你的脚本应当显示第十行: Line 10
说明:
- 如果文件少于十行,你应当输出什么?
- 至少有三种不同的解法,请尝试尽可能多的方法来解题。
# Read from the file file.txt and output the tenth line to stdout.
# sed -n '10p' file.txt
## NR 为指定行
# awk 'NR==10' file.txt
## 从第10行往下,然后取第一行
tail -n +10 file.txt | head -1
grep -n "" file.txt | grep -w '10' | cut -d: -f2
sed -n '10p' file.txt
awk '{if(NR==10){print $0}}' file.txt
但是考虑到说明中行数不足10的情况处理,可以做如下处理:
row_num=$(cat file.txt | wc -l)
echo $row_num
if [ $row_num -lt 10 ];then
echo "The number of row is less than 10"
else
awk '{if(NR==10){print $0}}' file.txt
fi