在 中ifcfg-eth0
,我设法使用 grep "DEVICE=eth0"
grep "DEVICE=" ifcfg-eth0
但是我怎样才能 grep 模式只显示“eth0”呢?
答案1
grep
并不是真正的工具(尽管 GNU grep 版本提供了执行类似操作的各种选项)。sed
或者awk
更适合这项任务。
awk -F= '$1 == "DEVICE" { print $2 }'
sed -n 's/^DEVICE=//p'
答案2
grep
使用带有-P
选项 (PCRE)的 GNU 可以做到这一点。重要的是要注意,并非所有版本的 GNUgrep
编译时都支持该-P
选项。
我个人会awk
按照 Chris Down 的建议使用,但我想提供grep
完整性要求的答案。
grep -Po '(?<=DEVICE=).+' ifcfg-eth0
该(?<=)
构造被称为 a look-behind
。它用于查找匹配项,但不包含在实际匹配项中。