我正在使用Windows操作系统。
我的节目:
#!/bin/bash
OIFS="$IFS"
IFS=$'\n'
find teste1 -type f | while read -r firstResult
do
find teste2 -type f | while read -r secondResult
do
firstName=${firstResult##*[/|\\]}
secondName=${secondResult##*[/|\\]}
if [[ "$( echo "$firstName" | tr [A-Z] [a-z])" == "$( echo "$secondName" | tr [A-Z] [a-z])" ]]; then
echo "$firstResult" "$secondResult" >> equal
else
echo "$firstResult" "$secondResult" >> notEqual
fi
if [[ $firstName == $secondName ]]; then
echo "$firstResult" "$secondResult" >> equal2
fi
done
done
diff -2 "--line-format=%L" "--unchanged-line-format=" equal equal2 > renamedFiles.lst
rm equal
rm equal2
rm notEqual
每当我运行此程序时,它会显示“diff:Conflicting line format”。但是,它会生成“renamedFiles.lst”并按照我想要的方式生成。那么,为什么它给我这个答案呢?我可以修理吗?它并没有真正影响我的程序,但没有人喜欢看到他们的程序上的警告/错误,对吧? :)
答案 0 :(得分:1)
我认为这是因为您使用 --line-format
(格式化所有行)和--unchanged-line-format
(格式化未更改的行)。我猜diff
没有定义如果它得到冲突的格式说明符该怎么做,所以它失败并告诉你它。你可以做的是使用例如--old-line-format=%L --new-line-format=%L --unchanged-line-format=