为什么我的 tail 命令 -n+NUM 不起作用?
Why does my tail command -n+NUM not work?
我想了解Linux中的以下命令:
# tail -n+454 /path/to/a/file | head -n 6
我希望 tail -n+454 /path/to/a/file
打印这些行,从第 454 行开始和接下来的 5 行。
|
将该输出作为输入发送到head
。然后只取前10行。
最后,-n 6
定义只有前 6 行被打印到屏幕上。
我是否正确翻译了命令?
现在我遇到了以下问题:假设我有一个文件,其中包含以下行:
# Step #6: Configure output plugins
我想打印该行之前的 5 行(包括该行)。
首先我检查了我的问题行的行号:
nl /path/to/a/file | grep output
行号是459。
我想要第459行之前的5行以及第459行本身(即第454到459行)。
命令 tail -n+454 /path/to/a/file | head -n 6
给出以下输出:
...这是第 380 到 384 行:
我希望得到第 454 到 459 行。我有什么不明白的?我的命令不正确吗?
使用这个命令:
head -n $(grep -n "Step #6: Configure output plugins" /path/to/a/file | awk -F ':' '{print }') /path/to/a/file | tail -n 5
注:
该命令有两部分
a) 找到行号:
grep -n "Step #6: Configure output plugins" /path/to/a/file | awk -F ':' '{print }'
b) 过滤你想要的行:
head -n [LINE NUMBER] /path/to/a/file | tail -n 5
我的错误是我只显示了文件中的非空行,这是错误的。
最好用...
nl -ba [FILE]
为文件中的所有行编号。然后查找感兴趣的行并使用 head 和 tail 命令(带管道)获得最终结果。
示例:
tail -n +539 [FILE] | tail -n 6
tail -n +539 [FILE] | head -n -212
head -n 544 [FILE] | tail -n 6
head -n 544 [FILE] | tail -n +539
所有命令导致相同的结果。
我犯的另一个错误是语法。 -n 和 +NUM 之间应该有一个 space。
顺便说一句,我OP中的行号是错误的,因为我使用了错误的行号命令。我指的是 544 不是 459.
我想了解Linux中的以下命令:
# tail -n+454 /path/to/a/file | head -n 6
我希望 tail -n+454 /path/to/a/file
打印这些行,从第 454 行开始和接下来的 5 行。
|
将该输出作为输入发送到head
。然后只取前10行。
最后,-n 6
定义只有前 6 行被打印到屏幕上。
我是否正确翻译了命令?
现在我遇到了以下问题:假设我有一个文件,其中包含以下行:
# Step #6: Configure output plugins
我想打印该行之前的 5 行(包括该行)。
首先我检查了我的问题行的行号:
nl /path/to/a/file | grep output
行号是459。
我想要第459行之前的5行以及第459行本身(即第454到459行)。
命令 tail -n+454 /path/to/a/file | head -n 6
给出以下输出:
...这是第 380 到 384 行:
我希望得到第 454 到 459 行。我有什么不明白的?我的命令不正确吗?
使用这个命令:
head -n $(grep -n "Step #6: Configure output plugins" /path/to/a/file | awk -F ':' '{print }') /path/to/a/file | tail -n 5
注:
该命令有两部分
a) 找到行号:
grep -n "Step #6: Configure output plugins" /path/to/a/file | awk -F ':' '{print }'
b) 过滤你想要的行:
head -n [LINE NUMBER] /path/to/a/file | tail -n 5
我的错误是我只显示了文件中的非空行,这是错误的。
最好用...
nl -ba [FILE]
为文件中的所有行编号。然后查找感兴趣的行并使用 head 和 tail 命令(带管道)获得最终结果。
示例:
tail -n +539 [FILE] | tail -n 6
tail -n +539 [FILE] | head -n -212
head -n 544 [FILE] | tail -n 6
head -n 544 [FILE] | tail -n +539
所有命令导致相同的结果。
我犯的另一个错误是语法。 -n 和 +NUM 之间应该有一个 space。
顺便说一句,我OP中的行号是错误的,因为我使用了错误的行号命令。我指的是 544 不是 459.