Linux 如何从一个目录中读取文件,并使用shell脚本将该文件作为另一个存储过程的输入?
我不熟悉编写shell脚本,我有一个名为XML_Files的目录,其中包含XML文件列表Linux 如何从一个目录中读取文件,并使用shell脚本将该文件作为另一个存储过程的输入?,linux,bash,shell,Linux,Bash,Shell,我不熟悉编写shell脚本,我有一个名为XML_Files的目录,其中包含XML文件列表 01.xml 02.xml 03.xml 04.xml 我希望逐个读取所有xml文件,并将这些文件作为输入参数发送到存储过程。因此,存储过程将相应地逐个处理每个xml文件 我尝试使用for循环来实现这一点,但没有得到预期的结果。它只采用文件目录路径。有人能帮我解决我在以下脚本中遗漏的问题吗: XML_FILES='ls -l $Xml_Files/*.xml' for f in XML_FILES
01.xml
02.xml
03.xml
04.xml
我希望逐个读取所有xml文件,并将这些文件作为输入参数发送到存储过程。因此,存储过程将相应地逐个处理每个xml文件
我尝试使用for循环来实现这一点,但没有得到预期的结果。它只采用文件目录路径。有人能帮我解决我在以下脚本中遗漏的问题吗:
XML_FILES='ls -l $Xml_Files/*.xml'
for f in XML_FILES
do
<<Stored procedure>> $f
if [ $? = 0 ]
then
mv $f $XML_Proccesed_Dir/
else
mv $f $XML_error_Dir/
fi
done
XML\u FILES='ls-l$XML\u FILES/*.XML'
用于XML_文件中的f
做
$f
如果[$?=0]
然后
mv$f$XML\u处理的\u目录/
其他的
mv$f$XML\u错误\u目录/
fi
完成
我正在寻找一种可以从/xml_files目录中选取文件并将文件作为输入参数发送到存储过程以处理xml文件的方法 您可以使用bash中的通配符扩展来获取文件夹中的xml文件列表
for f in ${Xml_Files}/*.xml; do
something ${f}
....
done
${f}
此循环中的格式为:
${Xml_Files}/01.xml
${Xml_Files}/02.xml
${Xml_Files}/03.xml
${Xml_Files}/04.xml
如果您需要${f}采用其他格式,您应该进一步澄清问题。您还可以使用
find
对找到的每个文件执行给定的命令。例如:
find ${Xml_Files} -name '*.xml' -type f -exec something {} \;
这将搜索目录${xml\u Files}
中扩展名为xml(-name'*.xml'
)的每个文件(-type f
),并在找到的每个x
上执行某物x
您还可以使用
find
执行短bash脚本,例如:
find ${Xml_Files} -name '*.xml' -type f -exec bash -c 'echo {}' \;
您在
XML\u Files
目录下有子目录吗?没有,我没有子目录。您可以编写一个简短的脚本,首先转到所需目录,如:cd/desired/directory/
,然后应用for
循环,如:for i in*.XML;做$i;完成
谢谢..我使用${Xml_Files}/*.Xml来选择我的文件,它的工作“…但我无法得到预期的结果”不是一个好的问题陈述。问题或错误是什么?另见。