에서는 ifcfg-eth0
grep "DEVICE=eth0"을 사용했습니다.
grep "DEVICE=" ifcfg-eth0
하지만 "eth0"만 표시하도록 패턴을 어떻게 찾을 수 있습니까?
답변1
grep
실제로 도구는 아닙니다(GNU grep 버전은 유사한 작업을 수행하기 위한 다양한 옵션을 제공하지만). sed
아니면 awk
작업에 더 적합합니다.
awk -F= '$1 == "DEVICE" { print $2 }'
sed -n 's/^DEVICE=//p'
답변2
grep
-P
이는 GNU 옵션(PCRE)을 사용하여 수행할 수 있습니다. 모든 버전의 GNU grep
컴파일이 이 옵션을 지원하는 것은 아니라는 점에 유의하는 것이 중요합니다 -P
.
개인적으로 나는 Chris Down의 제안을 따르겠지만 , 완전성을 위해 필요한 답변을 awk
제공하고 싶었습니다 .grep
grep -Po '(?<=DEVICE=).+' ifcfg-eth0
이 (?<=)
구조를 이라고 합니다 look-behind
. 일치 항목을 찾는 데 사용되지만 실제 일치 항목에는 포함되지 않습니다.