如何循环遍历由 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

这是我使用并运行 shell 脚本的代码。我收到
第 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

相关内容