
我所需要的只是 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"
僅搜尋檔案名,不幸的是這不起作用。
我的問題。第二個 grep 過濾器應該如何「尋找」以便我只取得 zip 檔案名稱?
答案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