find和for怎么一起用

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值