【发布时间】:2013-04-17 07:02:07
【问题描述】:
我正在使用以下 shell 脚本循环遍历一个文本文件,然后删除与该文件名匹配的所有内容。
但是,如果文件名中包含空格,则它不起作用。如何纠正?理想情况下,我的脚本会查找并删除带空格和不带空格的文件名......
对此最受赞赏的任何其他改进。
这是在 OSX 中
提前感谢您的想法和建议,
丹
$ cat delete-files.sh
#!/bin/sh
PATH=/bin:/usr/bin:/usr/sbin
export PATH
for i in `cat /opt/scripts/files-to-delete.dat` ;
do find /Volumes/folder/subfolder -iname $i -print -delete ;
done
还有文本文件:
$ cat files-to-delete.dat
LloydsTSB_Customer_Identification.html
Santander_Update_Process.html
asdasdasd asdasdasd.txt
【问题讨论】:
-
IFS=$'\n'; for l in $(cat)执行路径名扩展,如果文件没有以换行符结尾,while IFS= read -r l会跳过最后一行。见this answer。