在文件中的每一行上运行命令

时间:2016-05-04 08:58:39

标签: bash shell unix xmlstarlet

我有FramesList.txt,该文件包含5个.xml个文件名。没有生成路径,因为列表是由xml ls > FramesList.txt命令创建的。

我想在列出的每个xmlstarlet文件上运行.xml命令。

FramesList.txt
FR0391W.xml
FR0921S.xml
FR0193A.xml
FR0192B.xml
FR0132E.xml

那怎么样?这是一个循环吗?

3 个答案:

答案 0 :(得分:11)

您可以使用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

答案 1 :(得分:2)

while  read -r line
do

xmlstarlet "$line"

done <FramesList.txt

答案 2 :(得分:0)

我认为大多数XML Starlet命令都接受多个文件作为参数,因为输入列表很小,你也可以编写

xml COMMAND $(<FramesList.txt)