问题: 我对 shell 脚本非常陌生。我有两个目录 A 和 B,每个目录包含大约 100 个文件。文件夹 A 和 B 中的文件具有完全相同的名称,但内容不同,因为它们是来自不同服务器的 xml 响应。 我有一个 xmldiff 实用程序,它将查找这些文件中的差异并为差异生成另一个文件 result.xml,它适用于以下命令:

 xmldiff A/file1.xml B/file1.xml Result/result1.xml 

所以,我需要一个 shell 脚本来循环遍历文件夹 A 和 B,从每个文件夹中选择 filename1, 将其传递给 xmldiff 并获取 result.xml...(对于所有 100 个文件)

请您参考如下方法:

#!/bin/bash 
 
APP="xmldiff" 
A="folder path" 
B="folder path" 
result="folder path" 
 
 
# This function extract the basename  /path/to/basename.ext -> basename 
getBaseName(){ 
local name="$1" 
basename=`echo "$name" | sed -r -e "s/.+\/([^\/]+)\.[^\.]+$/\1/"` 
echo "$basename" 
} 
 
for _file in $A/* 
do  
filename=`getBaseName "$_file"` 
# I'm assuming here that you have only xml files ending in .xml 
"$APP" "$A/${filename}.xml" "$B/${filename}.xml" "$result/${filename}_result.xml" 
 
done 

注意:将其复制到新的文本文件中。然后从命令行输入:chmod +x yourfilename。要从同一文件夹执行:./yourfilename


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!