![find 명령으로 추출한 파일을 반복하여 다른 명령의 입력으로 사용하려면 어떻게 해야 합니까?](https://linux55.com/image/100004/find%20%EB%AA%85%EB%A0%B9%EC%9C%BC%EB%A1%9C%20%EC%B6%94%EC%B6%9C%ED%95%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%B0%98%EB%B3%B5%ED%95%98%EC%97%AC%20%EB%8B%A4%EB%A5%B8%20%EB%AA%85%EB%A0%B9%EC%9D%98%20%EC%9E%85%EB%A0%A5%EC%9C%BC%EB%A1%9C%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
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