格式化目录中的所有 XML 文件并将它们保存在子目录中

2023-12-23

我正在尝试编写一个脚本来查看目录,找到所有 XML 文件,然后运行它们xmllint,并将格式化结果保存到名为的子目录中的同名文件中formatted。这是我到目前为止的脚本:

find . -maxdepth 1 -type f -iname "*.xml" | xargs -I '{}' xmllint --format '{}' > formatted/'{}'

这在一定程度上是有效的。该子目录最后有一个文件,名为"{}",这只是最终文件经过处理的结果xmllint。如何使文件正确写入子目录?


该文件名为{}你看到的可能应该包含all将格式化文件放在一起。原因是您使用的重定向实际上并不是命令的一部分xargs看到了。重定向由 shell 解释,因此它所做的是运行

find . -maxdepth 1 -type f -iname "*.xml" | xargs -I '{}' xmllint --format '{}'

并将输出保存到名为的文件中formatted/{}.

尝试使用--output的选项xmllint而不是重定向:

... | xargs -I '{}' xmllint --format '{}' --output formatted/'{}'

您也可以避免致电xargs通过使用-exec的选项find:

find . -maxdepth 1 -type f -iname "*.xml" -exec xmllint --format '{}' --output formatted/'{}' \;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

格式化目录中的所有 XML 文件并将它们保存在子目录中 的相关文章

  • 从 shell 脚本内的 php 脚本检索退出状态

    我有一个 bash shell 脚本 它调用一些像这样的 PHP 脚本 bin bash php f somescript php php f anotherscript php 我想根据这些脚本的结果编写错误日志和 或活动报告 有什么方法
  • Raspberry Pi:未设置 X11 DISPLAY 变量,但该程序执行了需要它的操作

    我正在使用 PuTTY 与 Raspberry Pi 进行套接字连接 我正在开发一个电视记分牌应用程序 我正在使用 WinSCP 来复制这些 sh文件到树莓派 当我运行脚本时 timer sh bin bash java jar home
  • Shell 脚本读取缺少最后一行

    我的 bash shell 脚本有一个奇怪的问题 我希望能对此有所了解 我的团队正在开发一个脚本 该脚本会迭代文件中的行并检查每一行中的内容 我们遇到了一个错误 当通过将不同脚本排序在一起的自动化流程运行时 看不到最后一行 用于迭代文件中的
  • 将单个变量分配给数组(就地)

    考虑以下代码 a 1 2 3 a seven export a declare p a 输出 来自declare is declare ax a 0 seven 1 2 2 3 So a是一个数组 问题 如何改变第二行 所以a将不再是一个数
  • 将命令发送到 GNU 屏幕

    我有一个名为 demo 的 GNU 屏幕 我想向它发送命令 我该怎么做呢 screen S demo X home aa scripts outputs sh yeilds No screen session found 和做screen
  • 作为后台进程/服务运行命令

    我有一个 Shell 命令 我想在后台运行 并且我读到这可以通过添加后缀来完成 到导致它作为后台进程运行的命令 但我需要一些更多的功能 并且想知道如何去做 我希望每次系统重新启动时该命令都在后台启动并运行 我希望能够像人们一样在需要时启动和
  • 不太无用的“yes”bash 命令:如何在每个循环中确认命令

    我编写了一个循环来解压缩目录中的所有 zip 文件 for f in zip do unzip f done 但是 我必须在每一步确认覆盖 replace file123 txt y es n o A ll N one r ename A
  • getopts 未提供参数

    如何检查是否没有提供必需的参数 我发现 switch case 中的 选项应该足以达到此目的 但它永远不会进入该 case 代码块 我是否将 冒号大小写 放在开头或其他位置并不重要 我的代码 while getopts a b OPTION
  • 在 Bash 的条件中,什么命令意味着“不执行任何操作”?

    有时 在制作条件时 我需要代码不执行任何操作 例如 在这里 我希望 Bash 在以下情况下不执行任何操作 a大于 10 如果大于 10 则打印 1 a小于 5 否则打印 2 if a ge 10 then elif a le 5 then
  • 如何在Linux shell脚本中将文本文件中的两行合并到同一行中

    我使用 wget 命令从 Nagios 下载了它的 html 文件 然后使用以下代码将该 html 文件转换为 Textfile html2text width 180 file html gt a txt 然后我剪切了前 10 行 因为我
  • 空格分隔值;如何提供包含空格的值

    我正在创建一个 bash 脚本来通过以下方式配置多个 Azure 资源Azure CLI https learn microsoft com en us cli azure view azure cli latest 到目前为止一切顺利 但
  • 如何将一个目录中的所有文件移动到多个具有给定文件数量的目录中?

    我有一个包含超过 27000 张图像的目录 我想将这些文件分成文件夹 每个文件夹包含大约 500 张图像 它们如何排序并不重要 我只是想将它们分开 一个 简单 的 find xargs 就可以了 find maxdepth 1 type f
  • 在 shell 中将 ANSI 转换为 UTF-8

    我正在制作一个解析器 1 csv 到 3 csv 脚本 但遇到问题 我是法国人 所以用我的语言我有这样的字母 一位客户向我发送了一个 csv 文件 Linux 将其识别为 unknown 8bit 我猜是 ansi 在我的脚本中 我正在编写
  • “sed” 在文件中插入反斜杠

    Tool Windows 版 Git Bash Problem 尝试在目录中每个文件的顶部插入文本 connectcentral Code for f in DIR sql do sed i 1i connect central f don
  • 未找到神奇函数“bash”

    我有一堆模拟想要在高性能集群上运行 我应该在这些集群上进行预留以获得计算时间 由于预订是有时间限制的 我正在开发一个自动化脚本 我可以scp进入集群并运行 然后 该脚本将下载相关的模拟文件 运行它们 并上传结果 该自动化脚本的一部分位于ba
  • 对 shell 变量中的单引号进行转义

    我编写了一个 Bash 脚本来将值插入到SQLite https en wikipedia org wiki SQLite数据库 命令如下 sqlite3 db name insert into table name column1 col
  • 运行 php 脚本的 Bash 脚本

    我有一个 php 脚本 我想使用 bash 脚本运行它 所以我可以使用 Cron 每分钟左右运行 php 脚本 据我所知 我需要创建 bash 脚本来处理 php 脚本 然后我才能使用 Cron 工具 计时器 到目前为止 我被告知我需要输入
  • 从 PHP 启动交互式 SSH bash 会话

    我正在使用 PHP 编写常见服务器管理任务的快捷方式 我正在使用deployer org 但这应该不重要 我想添加一个任务 用于在通过 SSH 连接到服务器后启动交互式 bash 提示符 例如 您将运行 dep ssh 其中 dep 是一个
  • Git 责备文件中的作者列表

    有没有办法找到在 repo 中编辑 java 文件中的类的作者列表git blame 作者列表必须是唯一的 我尝试使用以下命令 但它没有删除重复项 并且每行输出中都有 作者 一词 不需要对输出进行排序 但我希望获得没有任何重复的输出 git
  • Bash,在包含子目录的目录中的每个 .jpg 文件上运行脚本

    我有一些工作代码 它非常简单 它复制每个 jpg 文件 将其重命名为 1 jpg 不用担心 for i in jpg do cp i i jpg 1 jpg done 我如何运行它 以便它适用于目录中的每个文件 该目录的子目录中的每个文件

随机推荐