這個程序:shell腳本 - 不區分大小寫匹配
#!/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
我有一點與它的問題,它的工作相當好的,但是當文件夾是爲這個例子:/ teste1/TESTE .pub /teste2/TEstE.pub,它不會將文件置於「相等」。我怎樣才能做到這一點?我一直試圖做這個沒有區分大小寫的查找,這意味着它應該可以工作,但它只是不承認。
請幫忙。
也許我應該只是「改造」的所有文件名的案例之一,然後做搜索?你認爲這會解決我的問題?就邏輯而言,它將起作用,因爲所有文件都具有相同的外殼。
它提供了以下 - > teste.sh:$ {的firstName ,,}:壞替代 – Gabriel
我認爲這是由於在腳本不同的錯誤,我想你'read'是在子shell執行。如果我是對的,你的答案會給出空的'.lst'文件。等一下,我查這個... – Graeme
嗯..在「.LST」因爲它是,是不是空的,它總是保存的文件。問題發生在整個「.lst」文件之前,不是?我得到的錯誤是在「如果」命令,或者這就是在我看來:) – Gabriel