로그에서 일부 줄을 추출합니다.

로그에서 일부 줄을 추출합니다.

내 로그 파일에 다음 줄이 있습니다.

<ROW USER_GID="TEST 1" FLOW="Norm" SEQUENCE="9"/>
<ROW USER_GID="TEST 2" FLOW="Norm" SEQUENCE="2"/>
<ROW USER_GID="TEST 3" FLOW="Norm" SEQUENCE="2"/>

USER_GID각 행의 값을 추출하려고 합니다. grep/ awk또는 명령을 사용하여 sed동일한 작업을 수행 할 수 있습니까 ?

위의 경우 출력은 다음을 반환해야 합니다.

TEST 1 
TEST 2
TEST 3

답변1

이렇게 할 수도 있지만 sedXML 파서를 사용하여 자신에게 맞는 행을 얻는 것이 더 좋습니다.

즉, 모든 데이터가 동일한 형식이라고 가정하고 다음 sed 명령을 사용할 수 있습니다.

sed -n 's/.*USER_GID="\([^"]*\)".*/\1/p' log_file

답변2

다음 awk 명령으로 완료하세요.

awk -F '"' '/USER_GID/{print $2}' filename

산출

TEST 1
TEST 2
TEST 3

관련 정보