有这样做的“规范”方式吗?我一直在使用head -n | tail -1which 来解决问题,但我一直想知道是否有一个 Bash 工具可以专门从文件中提取一行(或一系列行)。
head -n | tail -1
“规范”是指其主要功能正在执行此操作的程序。
head对于一个巨大的文件,管道tail会很慢。我会建议sed这样:
head
tail
sed
sed 'NUMq;d' file
NUM您要打印的行号在哪里;例如,sed '10q;d' file打印第 10 行file.
NUM
sed '10q;d' file
file
解释:
NUMq当行号为 时将立即退出NUM。
NUMq
d将删除该行而不是打印它;这在最后一行被禁止,因为这q会导致退出时跳过脚本的其余部分。
d
q
如果你有NUM一个变量,你会想要使用双引号而不是单引号:
sed "${NUM}q;d" file