
필요한 것은 Zip 파일 이름뿐입니다. 첫 번째 단계에서 저자를 검색했습니다.
egrep -ni -B1 --color "$autor: test_autor" file_search_v1.log > result1.log
무엇이 효과가 있었든 결과는 다음과 같습니다.
우편번호: /var/www/dir_de/html/dir1/dir2/7890971.zip
작성자: test_autor
우편번호: /var/www/dir_de/html/dir1/dir2/10567581.zip
작성자: test_autor
하지만 위에서 언급했듯이 Ziip 파일 이름은 . 두 번째 단계에서는 첫 번째 검색 결과를 다시 필터링해 보았습니다.
egrep -ni -B1 --color "$autor: test_autor" file_search_v1.log | xargs grep -i -o "\/[[:digit:]]]\.zip"
파일 이름만 검색하려면 안타깝게도 이 방법은 작동하지 않습니다.
내 질문. zip 파일 이름만 얻으려면 두 번째 grep 필터를 어떻게 "보아야" 합니까?
답변1
grep -B1 "$autor: test_autor" file_search_v1.log | grep -o "[^/]*\.zip$"
필요에 따라 첫 번째를 변경하십시오 grep
. 두 번째는 비 문자와 접미사가 grep
포함된 줄 끝 부분을 필터링합니다 ./
.zip
zip 파일에 숫자만 포함되어 있다는 것을 알고 있는 [^/]
경우 [[:digit:]]
.
답변2
싱글로awk
표현:
$ author="test_autor"
$ awk -v pat="author: $author" '$0 ~ pat{ sub(/^.*\//, "", zip); print zip }{ zip=$0 }' file
7890971.zip
10567581.zip