运行 文件中每一行的命令

Running command on each line in file

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

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

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

那看起来怎么样?是循环吗?

while  read -r line
do

xmlstarlet "$line"

done <FramesList.txt

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

我认为大多数 XML Starlet 命令接受多个文件作为参数,并且由于您的输入列表很小,您也可以这样写

xml COMMAND $(<FramesList.txt)