내 로그 파일에 다음 줄이 있습니다.
<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
이렇게 할 수도 있지만 sed
XML 파서를 사용하여 자신에게 맞는 행을 얻는 것이 더 좋습니다.
즉, 모든 데이터가 동일한 형식이라고 가정하고 다음 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