유닉스 파일에서 일치하는 모든 단어를 출력해야 합니다.

유닉스 파일에서 일치하는 모든 단어를 출력해야 합니다.

raw.txt라는 Unix 텍스트 파일에 이 데이터 세트가 있을 때

2020-05-28 08:00:32,360 | push_imgs | INFO | Pulled 950-09050294592-FACE.jpg
2020-05-28 08:00:32,373 | push_imgs | INFO | Pulled 950-09050294592-SIGNATURE.jpg

날짜와 .jpg 파일만 인쇄하면 됩니다. 아래 예시처럼

2020-05-28 950-09050294592-FACE.jpg

현재 풀 및 .jpg를 사용하여 모든 행을 가져오는 다음 스크립트가 있습니다. 날짜와 .jpg 파일만 인쇄하면 됩니다.

awk '/Pulled/&&/.jpg/' IGNORECASE=1 /home/user/rawfile.txt 

감사합니다!

답변1

해당 필드를 인쇄해 보셨나요?

 awk '/Pulled/&&/.jpg/ { print ($1 $9);} ' IGNORECASE=1 yourfile  

답변2

모든 행이 질문에 표시된 형식이라고 가정하면 간단히 사용할 수 있습니다cut

$ cut -d' ' -f 1,9 yourfile
2020-05-28 950-09050294592-FACE.jpg
2020-05-28 950-09050294592-SIGNATURE.jpg

다른 행이 있는 경우 다음을 사용하여 필터링할 수 있습니다.egrep

$ grep 'jpg[[:blank:]]*$' yourfile | cut -d' ' -f 1,9
$ grep -E 'Pulled .+jpg[[:blank:]]*$' yourfile | cut -d' ' -f 1,9

줄 끝 과 실제 줄 끝 사이에 공백이 있더라도 [[:blank:]]*$줄 끝 과 일치합니다 .jpg

또는 물론 awk다른 답변에 표시된 방법을 사용하십시오.

관련 정보