如何使用grep取得一行中的一部分

问题描述 投票:-2回答:1

当我尝试发送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个回答
0
投票

鉴于您的实际糊(和忽视畸形样本输出):

$ 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

它实际上只是一个扩展的正则表达式,和grep的-o标志,只输出精确匹配,而不是匹配的行。

© www.soinside.com 2019 - 2024. All rights reserved.