[英]Find files recursively and use them
我正在寻找一个脚本,用于比较来自两个不同路径的相同文件。
请帮我! 到目前为止,他是我的剧本
# 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
您不需要for filename
循环, find
是打印文件名。
使用basename
是错误的,因为它会丢失路径中的所有中间目录。 因此,请使用bash变量替换在路径中将$1
替换$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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.