当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [问题]在shell中如何编辑文件名称中含有空格的文件?
帖子发表于 : 2007-08-16 11:46 

注册: 2007-01-20 11:38
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
有的时候需要打开或者编辑一些文件 而这个文件的文件名称中含有空格 在shell中这个文件明就被认为是两个文件了
举例说明:
某目录含有两个文件,第一个叫a b.c (含有一个空格) 第二个叫d e.f
利用变量FILES接收文件名称FILES=`ls` 这个时候再用for i in $FILES就会出错了 因为空格把文件明区分开了 边成了四个文件 a 、b.c、 d 、e.f,我该怎么才能区分呢?是不是不应该使用FILES=`ls`? 如果这样不对,那我使用什么才能作?
请高人指点 谢谢


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-08-16 12:05 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
for 的时候,后面的变量就已经内部展开了。你要在for以前,就用""或者''包括好文件名。


_________________
● 鸣学


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-08-16 12:07 
头像

注册: 2005-10-25 11:15
帖子: 1016
送出感谢: 0 次
接收感谢: 1
可以通过设置IFS凑合一下
代码:
IFS="\n"
for i in `ls`; do echo $i; done


_________________
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-08-16 14:19 

注册: 2007-01-20 11:38
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:
for 的时候,后面的变量就已经内部展开了。你要在for以前,就用""或者''包括好文件名。


我接触shell时间很短 有些地方不太明白 还清赐教! :o
用“或者”包括?如何作?


BTW:谢谢三楼,我试过了 不行 ,这时候整体就是一个变量了 ?
代码:
IFS="\n"
for i in `ls`; do echo " [>>>>$i<<<<]"; done


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-08-16 23:45 

注册: 2007-04-02 15:04
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
不过做完做好还是把IFS=" " 给改会来


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-08-17 10:17 

注册: 2007-01-20 11:38
帖子: 21
送出感谢: 0 次
接收感谢: 0 次
四楼: 我已经说过 那个方法我试过了 不行!


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-08-17 10:28 
头像

注册: 2005-10-25 11:15
帖子: 1016
送出感谢: 0 次
接收感谢: 1
抱歉楼主,这样就可以了:
代码:
IFS=$'\n'
for i in `ls`; do echo " [>>>>$i<<<<]"; done


_________________
hreiser@oakland:~$ killall -9 wife
police@oakland:~$ sudo find / -user hreiser
court@oakland:~$ sudo mv /home/hreiser /jail/
court@oakland:~$ sudo usermod -d /jail/hreiser -s "/usr/sbin/chroot /jail/" hreiser


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-08-17 11:31 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
别动LFS吧。
以前,我是ls -1处理的。先期加""。老的bash都删除了。找不到了。思路是这样的。

其实,你不如用find去处理。容易多了。


_________________
● 鸣学


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-08-19 13:40 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
ls | while read i ; do foo "$i" ; done


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: [问题]在shell中如何编辑文件名称中含有空格的文件?
帖子发表于 : 2011-02-18 17:43 

注册: 2007-04-22 0:56
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
加双引号


页首
 用户资料  
 
11 楼 
 文章标题 : Re: [问题]在shell中如何编辑文件名称中含有空格的文件?
帖子发表于 : 2011-02-18 17:57 

注册: 2007-07-01 17:36
帖子: 229
地址: (En):address
系统: (En):System
送出感谢: 2
接收感谢: 3
xargs -0 选项可以


_________________
---
regards,

Kent


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译