下面的代码工作得很好但是当文件夹路径包含“,”和空格时出错
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 :(得分:0)
这是循环目录内容的方式:
#!/bin/bash
shopt -s nullglob
for file in data/*; do
printf 'File found: %s\n' "$file"
ls "$file"
done
我们使用shell选项nullglob
,以便在没有匹配的情况下,glob *
扩展为空(因此循环无效)。