줄에서 패턴을 제거하고 나머지 내용을 반환하려면 어떻게 해야 합니까?

줄에서 패턴을 제거하고 나머지 내용을 반환하려면 어떻게 해야 합니까?

이것을 실행하면 ip addr sho | grep 9000빠른 통계가 필요한 인터페이스가 반환됩니다.

eth3: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 9000 qdisc mq state UP qlen 1000

그러나 이 grep 명령이 다음과 같은 불필요한 세부 정보 없이 더 짧은 줄을 반환하도록 만드는 방법을 알고 싶습니다.

eth3: mtu 9000 state UP

grep 명령에 특정 매개변수를 적용하여 이 작업을 수행할 수 있습니까?

답변1

awk해결책. eth, 숫자, 다음이 포함된 행을 찾아 해당 열을 인쇄합니다.

$ ip a s | awk '/eth[0-9]*:/{print $2,$4,$5,$8,$9}'
eth0: mtu 1460 state UP
$

sed더 달콤하고 더 짧은 방법이 있다는 점을 지적할 수도 있지만 해결책입니다.

$ ip a s | sed -n 's/^.*\(eth[0-9]*:\).*\(mtu [0-9]*\).*\(state [A-Z]*\).*/\1 \2 \3/p'
eth0: mtu 1460 state UP
$

grep+ cut솔루션.

$ ip a s | grep -E 'eth[0-9]+:' | cut -f2,4,5,8,9 -d" "
eth0: mtu 1460 state UP
$

관련 정보