find得到一些文件列表,但for遍历该列表时,发现得不到完整的路径,因为文件路径有些空格。想在遍历之前,将" "转换成"\ ",始终失败。这种情况该如何办?
for i in ....... ;do ....... "$i";done
list=`find -type f -name "*.txt"`
for i in "$list"
do
echo $i
done
如何遍历的文件路径含有空格 就被当成两个或多个文件路径处理 想知道怎么让for 读取每个txt文件的路径。
find ... | while read line; do
echo "$line"
....
done
这种情况最好改用 while read吧,以行为单位,就不用管空格了
find和while结合可以取到正常文件路径,先前也这样写过,不过在find命令写成`find ...`,导致娶不到正常文件路径。
list=`find -type f -name "*.txt"`
saveIFS=$IFS
IFS="\\"
for i in "$list"
do
echo $i
done
IFS=$saveIFS