使用以下命令时:

nl /etc/snort/snort.conf | grep output


我得到以下输出:

 33  #  6) Configure output plugins
445  #  Step #6: Configure output plugins
450  #  output unified2: filename snort.log, limit 128, mpls_event_types, vlan_event_types


因此,我可以看到Step #6: Configure output plugins位于第445行。

我想输出445行加上前五行(440-444 + 445),所以我使用:

tail -n+440 /etc/snort/snort.conf | head -n 6


但是,这给了我完全不同的结果。因此,我用行号标记了整个文件,进行调查并确实看到行# Step #6: Configure output plugins位于第445行...

经过对tail命令的反复试验和错误之后,我终于得到了预期的结果,但是我最初认为在445上的行实际上是在529上。我可以通过将之前的命令编号更改为以下内容来验证这一点:

tail -n+524 /etc/snort/snort.conf | head -n 6


然后,我得到了最初的预期结果,显示了配置文件的五行,其中# Step #6: Configure output plugins作为输出的最后一行。

为什么感觉到的行号之间存在差异(445对529)?

最佳答案

看一下nl的原始输出。它不会为空行编号。

$ nl /etc/snort/snort.conf
...
    32  ###################################################
    33  # Step #1: Set the network variables.  For more information, see README.variables
    34  ###################################################

    35  # Setup the network addresses you are protecting
    36  ipvar HOME_NET any

    37  # Set up the external network addresses. Leave as "any" in most situations
    38  ipvar EXTERNAL_NET any

    39  # List of DNS servers on your network
    40  ipvar DNS_SERVERS $HOME_NET

    41  # List of SMTP servers on your network
    42  ipvar SMTP_SERVERS $HOME_NET

    43  # List of web servers on your network
    44  ipvar HTTP_SERVERS $HOME_NET
...


使用-ba为所有行编号。默认值为-bt:仅编号非空行。

nl -ba /etc/snort/snort.conf | grep output

关于linux - nl和tail的行号之间存在差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57914122/

10-11 23:15