必要なのは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ファイル名は 。 2番目のステップでは、最初の検索結果をもう一度フィルタリングしてみます。
egrep -ni -B1 --color "$autor: test_autor" file_search_v1.log | xargs grep -i -o "\/[[:digit:]]]\.zip"
残念ながら、ファイル名だけを検索しても機能しません。
私の質問。 zipファイル名のみを取得するには、2番目のgrepフィルタをどのように「検索する」のですか?
答え1
grep -B1 "$autor: test_autor" file_search_v1.log | grep -o "[^/]*\.zip$"
grep
必要に応じて最初のものを変更してください。 2番目は、文字ではなく行と行末のサフィックスを含む行を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