bash 获取第一个字段 awk grep

标签 bash awk grep cut

在我的 brctl show 命令中:

bridge name bridge id       STP enabled interfaces
olm-com_uim     8000.b8ca3a5ecab1   no      eth1
                            vnet1


tyy-fom_psr     8000.a0369f11b218   no      bond1103
                            vnet0
                            vnet10
                            vnet8
uuu-r8s_udm     8000.b8o        eth1.1621
                            vnet5
bbb-r8s_ptr     8000.b8c    no      bond1115

我只想 grep :

olm-com_uim
tyy-fom_psr
uuu-r8s_udm 
bbb-r8s_ptr

所以我尝试一下,

brctl show | grep -v vnet | grep -v bridge | awk '{print $1}'

但我认为,这不是很好的方法

最佳答案

这也可以使用 grep -o 来完成:

brctl show | tail -n +2 | grep -o '^[^[:blank:]]\+'

olm-com_uim
tyy-fom_psr
uuu-r8s_udm
bbb-r8s_ptr

正则表达式 ^[^[:blank:]]\+ 匹配行开头的 1 个以上非空白字符。

关于bash 获取第一个字段 awk grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52280166/

相关文章:

bash - 在 Bash 中将数字四舍五入到 10

linux - 如何比较unix中不同列的文件?

svn - Subversion中所有版本文件的列表? (按名称删除文件)

regex - 使用多行正则表达式获取 grep 上下文

regex - 与 5 个选项中的一个进行比较

linux - 创建了一个包含零的 100 字节文件。但我看不到零

regex - 逐行解析文件中的关键字符并复制行

regex - -v 选项在 grep 中不起作用

bash:我如何连接两个命令的输出以便我可以将它们传递给第三个命令?

bash - 如何使用 awk 按天将带时间戳的日志文件拆分为多个文件