我正在寻找一个脚本,它比较来自两个不同路径的相同文件。
请帮帮我! 到目前为止,他是我的剧本
# Process each file in directory_1, comparing it to directory_2
find $1/ -type f -name '*.txt' -print | while read src
do
for filename in */*.txt; do
echo $filename
fn=$(basename "$filename")
if [ -f "$filename" ]; then
echo $filename
newname=`echo $2/$fn|sed 's/\.txt$//g'`
echo $newname
#do something here with this two files
echo "Done"
fi
done
done
答案 0 :(得分:1)
您不需要for filename
循环,find
正在打印文件名。
使用basename
是错误的,因为它丢失了路径中的所有中间目录。因此,请使用bash变量替换将$1
替换为路径中的$2
。
find "$1" -type f -name '*.txt' -print | while read filename
do
echo "$filename"
newname=${filename/$1/$2} # Replace old directory prefix with new prefix
newname=${newname%.txt} # Remove extension
echo "$newname"
if [ -f "$newname" ]
then
#do something here with this two files
fi
echo "Done"
done