필요한 것은 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