我有FramesList.txt
,该文件包含5 .xml
文件名。没有生成路径,因为该列表是由xml ls > FramesList.txt
命令创建的。运行命令在文件中的每一行
我想在列出的每个.xml
文件上运行xmlstarlet
命令。
FramesList.txt
FR0391W.xml
FR0921S.xml
FR0193A.xml
FR0192B.xml
FR0132E.xml
那会怎么样?它是一个循环吗?
我有FramesList.txt
,该文件包含5 .xml
文件名。没有生成路径,因为该列表是由xml ls > FramesList.txt
命令创建的。运行命令在文件中的每一行
我想在列出的每个.xml
文件上运行xmlstarlet
命令。
FramesList.txt
FR0391W.xml
FR0921S.xml
FR0193A.xml
FR0192B.xml
FR0132E.xml
那会怎么样?它是一个循环吗?
您可以使用xargs
:
xargs < FramesList.txt -n 1 xmlstartet
# ^ ^^
# | | Command to run
# | Max number of arguments (xmlstartet will be called for
# | each line in input file)
# Input file
我建议也使用'-r'选项,以防万一输入文件为空。 – user1934428
@andlrc这很有帮助,虽然当我将xmlstarlet输出到.csv时,我失去了格式。它会把它变成一条长长的路线,而不是休息。相反,我使用以下方法:'cat FramesList.txt | xargs xmlstarlet -n> FrameInfo.csv'不知道为什么-n必须在那里,但是它带来了正确的格式。 – buzzin
看起来像这个命令将所有参数串在一起,并且您需要包含'-L1'来获得每行一个命令。 –
我想大多数XML斯塔利特命令接受多个文件作为参数,因为你的输入列表是小,你也可以写
xml COMMAND $(<FramesList.txt)
虽然这个问题可能会得到解答,但您应该展示您的研究成果和您尝试过的内容。现在看起来您希望我们解决您的问题。 – moffeltje
[你有什么尝试?](http://whathaveyoutried.com)请问 你的问题显示你的 有问题的代码[mcve],然后我们可以尝试帮助 具体问题。你还应该阅读[问]。 –
对不起,我甚至不知道在这里使用什么命令..感谢andlrc谁给我看xargs。新手在这里,不知道关于xargs。 – buzzin