【问题标题】:How to use grep to get only part of a line如何使用 grep 只获取一行的一部分
【发布时间】:2019-02-02 18:34:57
【问题描述】:

当我尝试发送命令 ifconfig 我得到这个

ath0  IEEE 802.11ng  ESSID:"test"  Nickname:""
      Mode:Master  Frequency:2.412 GHz  Access Point: 00:00:00:00:00:00
      Bit Rate:0 kb/s   Tx-Power=-4 dBm   Sensitivity=16/16
      Retry:off   RTS thr:off   Fragment thr:off
      Encryption key:off
      Power Management:off
      Link Quality=0/94  Signal level=-96 dBm  Noise level=-96 dBm
      Rx invalid nwid:475654423  Rx invalid crypt:0  Rx invalid frag:0
      Tx excessive retries:0  Invalid misc:0   Missed beacon:0

例如如何从这部分行中获取示例

ESSID:""test
Frequency:2.412 GHz

【问题讨论】:

    标签: linux ubuntu unix grep


    【解决方案1】:

    鉴于您的实际粘贴(并忽略格式错误的示例输出):

    $ cat ifconf 
    ath0  IEEE 802.11ng  ESSID:"test"  Nickname:""
          Mode:Master  Frequency:2.412 GHz  Access Point: 00:00:00:00:00:00
          Bit Rate:0 kb/s   Tx-Power=-4 dBm   Sensitivity=16/16
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=0/94  Signal level=-96 dBm  Noise level=-96 dBm
          Rx invalid nwid:475654423  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
    $ grep -oE 'ESSID:"[^"]+"|Frequency:[^ ]+' ifconf
    ESSID:"test"
    Frequency:2.412
    

    它实际上只是一个扩展的 RegEx,并且 grep 的 -o 标志只输出完全匹配,而不是匹配的行。

    【讨论】:

      猜你喜欢
      • 2019-09-07
      • 1970-01-01
      • 2013-07-07
      • 2016-09-02
      • 2011-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多