Linux tail 命令包含的行多于预期
Linux tail command includes more lines than intended
所以我想稍微了解一下 Linux 脚本编写,并从书中的一个简单示例开始。在这本书中,作者要我从snort.conf.
中抓取"Step #6: Configure output plugins"之前的五行
类似于作者,我确定了我想要的线在哪里,returns 445 对我来说。如果我然后使用 tail 结果 returns 比我预期更多的文本,并且应该在第 5 行的搜索行在第 88 行。我不明白我如何使用 tail 命令并从特定行开始但是然后包含更多文字。
搜索我用过的线路
nl /etc/snort/snort.conf | grep output.
获取包含搜索行之前的 5 行:
tail -n+440 /etc/snort/snort.conf | head -n+6
tail 语句似乎是问题所在。对于我的回答为何不起作用的任何帮助,我们将不胜感激!
你的tail
命令原则上是正确的。
问题在于您使用nl
获取行号的方式。默认情况下,nl
命令不计算空行,而 tail
命令计算空行。您应该在 nl
命令中指定您也想计算空行,您可以使用 -b
, (body-numbering) 选项并指定 a
作为您的样式.这看起来如下:
nl -ba /etc/snort/snort.conf | grep output.
来自nl --help
:
Usage: nl [OPTION]... [FILE]...
Write each FILE to standard output, with line numbers added.
With no FILE, or when FILE is -, read standard input.
Mandatory arguments to long options are mandatory for short options too.
-b, --body-numbering=STYLE use STYLE for numbering body lines
[...]
By default, selects -v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn. CC are
two delimiter characters for separating logical pages, a missing
second character implies :. Type \ for \. STYLE is one of:
a number all lines
t number only nonempty lines
为所有行编号并在 tail
中使用该行号。
你好,我正在尝试使用你正在使用的同一本书,但我没有找到任何关于 tail 或 nl 的好解决方案,但我想出了简单的 grep 开关 -B 和 -A 在 grep 开关之前和之后。
我通过输入
解决了这个问题
grep -B 5 “第六步:配置输出插件” /etc/snort/snort.conf
在那之后你将在该行之前得到 5 行,与 After -A 相同。
希望这会帮助人们保持安全快乐的学习
所以我想稍微了解一下 Linux 脚本编写,并从书中的一个简单示例开始。在这本书中,作者要我从snort.conf.
中抓取"Step #6: Configure output plugins"之前的五行类似于作者,我确定了我想要的线在哪里,returns 445 对我来说。如果我然后使用 tail 结果 returns 比我预期更多的文本,并且应该在第 5 行的搜索行在第 88 行。我不明白我如何使用 tail 命令并从特定行开始但是然后包含更多文字。
搜索我用过的线路
nl /etc/snort/snort.conf | grep output.
获取包含搜索行之前的 5 行:
tail -n+440 /etc/snort/snort.conf | head -n+6
tail 语句似乎是问题所在。对于我的回答为何不起作用的任何帮助,我们将不胜感激!
你的tail
命令原则上是正确的。
问题在于您使用nl
获取行号的方式。默认情况下,nl
命令不计算空行,而 tail
命令计算空行。您应该在 nl
命令中指定您也想计算空行,您可以使用 -b
, (body-numbering) 选项并指定 a
作为您的样式.这看起来如下:
nl -ba /etc/snort/snort.conf | grep output.
来自nl --help
:
Usage: nl [OPTION]... [FILE]... Write each FILE to standard output, with line numbers added. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -b, --body-numbering=STYLE use STYLE for numbering body lines [...] By default, selects -v1 -i1 -l1 -sTAB -w6 -nrn -hn -bt -fn. CC are two delimiter characters for separating logical pages, a missing second character implies :. Type \ for \. STYLE is one of: a number all lines t number only nonempty lines
为所有行编号并在 tail
中使用该行号。
你好,我正在尝试使用你正在使用的同一本书,但我没有找到任何关于 tail 或 nl 的好解决方案,但我想出了简单的 grep 开关 -B 和 -A 在 grep 开关之前和之后。
我通过输入
解决了这个问题grep -B 5 “第六步:配置输出插件” /etc/snort/snort.conf
在那之后你将在该行之前得到 5 行,与 After -A 相同。
希望这会帮助人们保持安全快乐的学习