如何使用cat、head或tail命令仅输出文件中指定行号的内容
如何使用cat、head或tail命令仅输出文件中指定行号的内容
嘿,这个需求我之前折腾文件的时候常碰到!其实用head和tail组合起来就能轻松搞定,我给你分几种场景讲明白:
1. 提取单行(比如你说的第73行)
如果你只想拿到文件里的第73行,思路很简单:先用head截取前73行,再用tail只保留最后1行——这最后一行就是你要的第73行:
head -n 73 <你的文件名> | tail -n 1
举个实际例子,假设要取test.log的第10行,直接敲:
head -n 10 test.log | tail -n 1
2. 提取连续的多行(比如第25到第35行)
要是需要一段连续的行,同样用两者组合:先取到目标范围的最后一行(第35行),再截取这段范围的总行数(35-25+1=11行):
head -n 35 <你的文件名> | tail -n 11
这样就能精准拿到第25到35行的所有内容。
3. 提取倒数第N行(比如倒数第2行)
反过来,要是想拿文件末尾的某一行,就先用tail取最后N行,再用head取第一行:
tail -n 2 <你的文件名> | head -n 1
这个命令会输出文件的倒数第2行。
补充:用cat配合工具的小技巧
虽然你重点问的是cat、head、tail,但顺便提个小方法:用cat配合nl(给行号)和grep也能提取单行,比如:
cat <你的文件名> | nl | grep -w 73 | cut -f2-
不过这种方法不如head+tail简洁,日常用前者就足够啦。
备注:内容来源于stack exchange,提问作者Oliver Williams
相关产品推荐
相关产品推荐

