이 프로그램 :쉘 스크립트 - 대소 문자를 구분하지 일치
#!/bin/bash
find teste1 -type f -iname "**" | while read -r firstResult
do
find teste2 -type f -iname "**" | while read -r secondResult
do
firstName=${firstResult##*[/|\\]}
secondName=${secondResult##*[/|\\]}
if [[ $firstName == $secondName ]]; then
echo "$firstResult" "$secondResult" >> equal.lst
else
echo "$firstResult" "$secondResult" >> notEqual.lst
fi
done
done
I 폴더이 예제로있을 때, 그것은, 그러나, 아주 좋아, 작업의 IT와 약간의 문제가 오전 :/teste1/TESTE .pub /teste2/TEstE.pub 파일을 "동등"하지 않습니다. 어떻게해야합니까? 대소 문자를 구별하지 않고 찾기를 시도했는데 작동한다는 것을 의미하지만 인식하지 못합니다.
도와주세요.
어쩌면 모든 파일 이름을 하나의 사례로 "변환"한 다음 해당 검색을 수행해야합니까? 그게 내 문제를 해결할 것이라고 생각하니? 논리의 관점에서 볼 때 모든 파일은 동일한 케이스를 사용하기 때문에 작동합니다.
그것은 다음을 제공합니다 -> teste.sh : $ {firstName을 ,,} :이 스크립트에서 다른 버그로 인해 생각하는 나쁜 대체 – Gabriel
, 당신의'read'이 서브 쉘에서 실행 생각 . 내가 맞다면 당신의 대답은 비어있는'.lst' 파일을 줄 것입니다. 이걸 확인하는 동안 기다려주세요 ... – Graeme
흠 .. ".lst"는 비어 있지 않았고 항상 파일을 저장했습니다. 문제는 전체 ".lst"파일보다 먼저 발생합니다. 내가 얻은 버그는 'if'명령이나 그것이 나에게 보이는 것입니다. – Gabriel