공백을 사용한 Grep 표현 - BASH

공백을 사용한 Grep 표현 - BASH

아래와 같이 grep하고 싶습니다 ACCEPT, DROP, REJECT.

-P INPUT ACCEPT
-P OUTPUT DROP
-P FORWARD REJECT

나는 처형했다

iptables -S | grep -E '\-P INPUT|\-P OUTPUT|\-P FORWARD' | awk '{print $2}'

내 출력은 다음과 같습니다

INPUT
OUTPUT
FORWARD

grep 하는 방법을 아는 사람이 있나요 ACCEPT, DROP, REJECT? 내장 체인에서만 grep 전략을 사용하고 싶습니다. 내장 체인 아래에는 사용자 체인이 있습니다.할 수 없다결과와 연관됩니다.

고마워요 남

답변1

어쨌든 다음과 같은 경우에는 전화할 이유가 없습니다 grep.awk

iptables -S | 
  awk '/^-P INPUT/ {INPUT=$3}; /^-P FORWARD/ {FORWARD=$3}; /^-P OUTPUT/ {OUTPUT=$3}; 
  END {print INPUT; print FORWARD; print OUTPUT;}'

답변2

당신은 가깝습니다. 전체 라인이 필요한 경우:

iptables -S | grep -- "-P" | grep -E "ACCEPT|DROP|REJECT"

산출

-P INPUT ACCEPT
-P OUTPUT DROP
-P FORWARD REJECT

일치하는 단어만 필요한 경우:

iptables -S | grep -- "-P" | grep -oE "ACCEPT|DROP|REJECT"

산출

ACCEPT
DROP
REJECT

관련 정보