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