Problem
How would you print just the 10th line of a file?
For example, assume that file.txt has the following content:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Your script should output the tenth line, which is:
Line 10
Wrong Answer
#Remember cases that there are less than 10 lines.
head -10 file.txt | tail -1
Correct Answer
sed -n '10p' file.txt
Other Answer
cnt=0
while read line && [ $cnt -le 10 ]; do
let 'cnt = cnt + 1'
if [ $cnt -eq 10 ]; then
echo $line
exit 0
fi
done < file.txt
awk 'FNR == 10 {print }' file.txt
# OR
awk 'NR == 10' file.txt
tail -n+10 file.txt|head -1
Reference
http://www.cnblogs.com/fjping0606/p/4997643.html
sed文本流行处理
https://fsp1yjl.github.io/2017/04/25/sed%E6%96%87%E6%9C%AC%E6%B5%81%E8%A1%8C%E5%A4%84%E7%90%86/