2016-12-31 47 views
1

如下因素代码工作很好,但是当文件夹路径含有“”和空格作出错误循环包含逗号的文件夹路径的名单“”和空格导致错误

dir data/ > folder_file.txt 

    IFS=$'\n' 
for file in "`cat folder_file.txt`" 
do 
printf 'File found: %s\n' "$file" 
ls "data/$file/" #-----------> "," and "space" brook this task 

done 

什么想法?转义特殊字符

现在工作的任何其他建议的,以使其更好地

IFS=$'\n' 
a=0 


for file in out/*; do 

ls "$file" > html_file.txt 


for file2 in `cat html_file.txt`; do 

echo $file 
mv "$file""/""$file2" "$file""/""page_"$a 
let a=$a+1 

    done 
    a=0 
    done 
+0

ls“some,thing /”适合我...你得到了什么确切的错误? –

+0

ls“A,b和à/”ls:不可能是A,b和à/:Aucun fichier或dossier de ce类型 – filip

+1

不要亲自采取,但您使用的是多个_antipatterns._你的脚本迟早会被打破。我不知道你在哪里学到了这些(破碎的)技巧,但是现在你有两个问题:1.忘掉它们; 2.学习适当的。祝你好运! –

回答

0

你这是怎么上的目录内容循环:

我们使用shell选项nullglob因此如果没有匹配,glob *将展开为空(因此循环无效)。

+0

对不起,但我想以后用sed'1d'folder_file.txt folder_file.txt – filip

+0

@filip:你为什么要使用它? –

+0

当文件夹为空时,脚本会显示数据/ A,b和c/* – filip

相关问题