findコマンドで抽出したファイルを繰り返して他のコマンドの入力として使用するにはどうすればよいですか?

findコマンドで抽出したファイルを繰り返して他のコマンドの入力として使用するにはどうすればよいですか?
find . -name 'Email*.log' -exec grep -il 'bad password' {} \;| while read line; do
  TEMPNUM=`tail -20 $line | grep 'bad password' | wc -l`
  if [ $TEMPNUM -gt 0 ]; then
     awk '/Username/{print $NF}' $line >> expiredmailbox.txt
  fi
done

これは私が使用してシェルスクリプトを実行するコードです。
行6:$ lineをエコーし​​ようとすると、予期しないトークン「完了」にアクセスする構文エラーが発生します。エラーが発生します。この問題をどのように削除できますか?

ベストアンサー1

これを試してみることができますか?

#!/bin/bash

find . -name 'Email*.log' | xargs grep -li  'bad password' |  while read line
do
  TEMPNUM=$(tail -20 "${line}" | grep -c 'bad password')
  if [ "${TEMPNUM}" -gt "0" ]; then
     awk '/Username/{print $NF}' "${line}" >> expiredmailbox.txt
  fi
done

おすすめ記事