我在目录中有一堆xml文件,需要对它们执行dos2unix命令,并且新文件将每隔一段时间添加一次。我不想每次使用脚本将所有文件自动化时,都对每个文件手动执行dos2unix命令。我一生中从未看过shell脚本,但到目前为止,我从一些教程中所读到的内容中得到了这一点:

FILES=/tmp/testFiles/*
for f in $FILES
do
  fname=`basename $f`
  dos2unix *.xml $f $fname
done

但是我一直在显示“用法”输出。我认为问题是我没有正确分配新文件的名称(fname)。谁能帮忙。

谢谢,
艾伦

最佳答案

您收到使用情况消息的原因是dos2unix不接受您提供的额外参数。但是,它将接受多个文件名(也通过glob)。除非您要处理的文件数量多于命令行所能接受的数量,否则不需要循环。

dos2unix /tmp/testFiles/*.xml

应该是您所需要的,除非您需要递归:
find /tmp/testFiles -name '*.xml' -exec dos2unix {} +

(用于GNU查找)

关于bash - 如何使用Shell脚本自动执行dos2unix?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11292010/

10-13 08:50