xml - 在 Linux 上运行进程的 shell 脚本

标签 xml linux shell command-line process

问题: 我对 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

关于xml - 在 Linux 上运行进程的 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22750037/

相关文章:

c# - ':'字符,十六进制值0x3A,不能包含在名称中

python - 解析 XML 异常

linux - 无法设置 AP,我不知道官方 Raspberry Pi 无线加密狗的驱动程序名称

shell - 如何获取已完成的 PBS 或 Torque 作业的信息?

c# - 如何过滤 XML 文档中的 XML 节点及其子节点?

java - 如何从 PHP 脚本、Java 程序回调进程状态到调用 bash shell

c - 使用 read() 将文件内容写入屏幕和 C 中的其他文件的问题

linux - 在Linux脚本中,如何删除当前目录中除一个之外的所有文件和目录?

android - 关于在 Android 应用程序中加载图像

php - 使用纯 DOM 方法或字符串连接来生成非常动态的 xml 文件哪个更好?