2014-09-14 2 views
-1

그런 다음 내가 찾기 기준리눅스 그런 파일이나 디렉토리를 찾을 수 없지만

find: /home/goods/ : No such file or directory 
find: /home/bads/ : No such file or directory 
find: /home/fill/ : No such file or directory 

을 나는 기존의 각 DIRS에 오류가이 스크립트를

for line in `cat dirs.txt`; 
do 
find "$line" -type f \(-name '*good*' -o -exec grep -F "badbad" {} \; \) -exec echo {} \;; 
done 

를 사용하고 일치하려고 존재하지만, 그럼 난이 dirs 존재하고 나는 그들을 모두 읽을 수있는 manualy보세요 왜 이런 일이?

+1

이 디렉토리는'/ home /'에 있고'/ home/[username] /'에 없습니까? – Tom

+0

하지만이 dirs 존재하고 나는 그들을 모두 읽을 수있는 manualy보세요! –

+1

'dirs.txt' 파일에서 각 행의 끝에 여분의 공백이 있습니까? –

답변

1

처럼 for line in $(cat ...하지만, 뭔가를 사용하지 말아야합니다 명령 사용 cat dirs.txt|tr -d "\r" >1.txt

1

문제는 파일에 dos (^M) 줄 끝이 있음입니다. dos2unix dirs.txt dirs.txt을 실행하면 문제가 해결됩니다. 이상적으로, 당신은 또한 cat dirs.txt -vET

다음 명령을 당신이 그들 모두를 손질해야 당신이 할 수있는 당신은^M $

의 파일에서 확인해야합니다

while IFS= read -r line; do 
    find "$line" -type f \(-name '*good*' -o -exec grep -F "badbad" {} \; \) -exec echo {} \; 
done < dirs.txt 
관련 문제