当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 批量替换文件中指定字符串? 谢谢! 还有个批量改名没解决
帖子发表于 : 2007-08-08 11:48 

注册: 2007-07-28 12:56
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
我有一个目录记为conn,该目录下又有许多目录和文件,我想把conn下所有目录下的文件的符合有字符串"street+若干空格+star"替换为"street+一个空格+komme"。请问如何实现呢?

比如conn若干层目录下的一个文件里的字符串street+若干空格+star要替换为street+一个空格+komme。
最好用bash实现


最后由 richardzhang 编辑于 2007-08-09 17:29,总共编辑了 1 次

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

注册: 2005-10-25 11:15
帖子: 1016
送出感谢: 0 次
接收感谢: 1
代码:
find -type f -exec sed -i 's/street[[:space:]]*star/street komme/' {} \;

别忘了先备份。


_________________
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


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

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
find conn -exec sed -e 's/street\s\+star/street komme/' --in-place '{}' \;


最后由 alinmn 编辑于 2007-08-09 15:43,总共编辑了 2 次

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

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
晕 慢了


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

注册: 2005-10-25 11:15
帖子: 1016
送出感谢: 0 次
接收感谢: 1
晕~~

楼上的,我先看到你回帖说用find+sed,本来都不打算回这个帖子了,因为问题也算解决了。但我之后一刷新,你的回帖居然不见了,我以为是系统问题,于是就回复了一下......

不是故意抢沙发的,呵呵。


_________________
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


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

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
\s都没?


_________________
● 鸣学


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

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
正则后面得加个g吧~


_________________
关注我的blog: ε==3


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

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
我错了 +应该是\+
laborer 你的dc -e后面的串怎么产生的?


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

注册: 2007-07-28 12:56
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
那么如果在上面的基础上只对后缀为.c的文件做修改如何办呢?谢谢!


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

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
find conn -iname *.c -exec sed -e 's/street\s\+star/street komme/g' --in-place '{}' \;


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-08-09 1:18 
头像

注册: 2005-10-25 11:15
帖子: 1016
送出感谢: 0 次
接收感谢: 1
alinmn 写道:
我错了 +应该是\+
laborer 你的dc -e后面的串怎么产生的?


代码:
python -c 'print reduce(lambda a,b: a*256+ord(b), raw_input("Input a string: "), 0)'


_________________
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


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

注册: 2006-05-19 21:42
帖子: 184
地址: NIT
送出感谢: 0 次
接收感谢: 0 次
呵呵 我一直在dc的man里面找了 谢了


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

注册: 2007-07-28 12:56
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
那如果我有一个目录记为conn,该目录下又有许多目录和文件,我想把conn下名字以act为开头的目录和文件名改为以ksaa开头命名,又该如何办呢?
比如一个目录名为actes改为ksaaes,请叫怎么做到?谢谢!


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-08-09 21:58 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
rename


_________________
● 鸣学


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-08-09 22:03 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
eexpress 写道:
rename


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

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


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

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


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

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

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