小编典典

Bash工具从文件中获取第n行

all

有这样做的“规范”方式吗?我一直在使用head -n | tail -1which 来解决问题,但我一直想知道是否有一个 Bash
工具可以专门从文件中提取一行(或一系列行)。

“规范”是指其主要功能正在执行此操作的程序。


阅读 146

收藏
2022-03-02

共1个答案

小编典典

head对于一个巨大的文件,管道tail会很慢。我会建议sed这样:

sed 'NUMq;d' file

NUM您要打印的行号在哪里;例如,sed '10q;d' file打印第 10 行file.

解释:

NUMq当行号为 时将立即退出NUM

d将删除该行而不是打印它;这在最后一行被禁止,因为这q会导致退出时跳过脚本的其余部分。

如果你有NUM一个变量,你会想要使用双引号而不是单引号:

sed "${NUM}q;d" file
2022-03-02