linux - 如何使用 grep 只获取一行的一部分

标签 linux ubuntu unix grep

当我尝试发送命令 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

最佳答案

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

$ 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 标志仅输出精确匹配,而不是匹配行。

关于linux - 如何使用 grep 只获取一行的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54496231/

相关文章:

linux - 如何在Windows下使用Matlab嵌入式编码器为LINUX编译?

linux - bash shell脚本问题中的日期格式错误帮助

linux - 我怎样才能让 pyinstaller 在 Ubuntu 上工作?

emacs - 如何在 Ubuntu (Unity 11.04) 上为 Emacs 启用全局菜单栏

python - tensorpack 安装失败

regex - 使用 -f 选项的 grep 或 fgrep 没有输出不起作用

linux - 尽管交互式 shell 功能正常,但 Bash 功能不适用于远程 ssh 命令执行

linux - 使用 wc 时文件名打印两次

Linux Shell 脚本 : extract values from string in specified manner

java - Jsch - 执行 Shell 脚本后退出