分页: 1 / 2
批量替换文件中指定字符串? 谢谢! 还有个批量改名没解决
发表于 : 2007-08-08 11:48
由 richardzhang
我有一个目录记为conn,该目录下又有许多目录和文件,我想把conn下所有目录下的文件的符合有字符串"street+若干空格+star"替换为"street+一个空格+komme"。请问如何实现呢?
比如conn若干层目录下的一个文件里的字符串street+若干空格+star要替换为street+一个空格+komme。
最好用bash实现
发表于 : 2007-08-08 12:05
由 laborer
代码: 全选
find -type f -exec sed -i 's/street[[:space:]]*star/street komme/' {} \;
别忘了先备份。
发表于 : 2007-08-08 12:06
由 alinmn
find conn -exec sed -e 's/street\s\+star/street komme/' --in-place '{}' \;
发表于 : 2007-08-08 12:06
由 alinmn
晕 慢了
发表于 : 2007-08-08 12:11
由 laborer
晕~~
楼上的,我先看到你回帖说用find+sed,本来都不打算回这个帖子了,因为问题也算解决了。但我之后一刷新,你的回帖居然不见了,我以为是系统问题,于是就回复了一下......
不是故意抢沙发的,呵呵。
发表于 : 2007-08-08 12:12
由 eexpress
\s都没?
发表于 : 2007-08-08 12:19
由 bones7456
正则后面得加个g吧~
发表于 : 2007-08-08 12:43
由 alinmn
我错了 +应该是\+
laborer 你的dc -e后面的串怎么产生的?
发表于 : 2007-08-08 13:10
由 richardzhang
那么如果在上面的基础上只对后缀为.c的文件做修改如何办呢?谢谢!
发表于 : 2007-08-08 17:42
由 alinmn
find conn -iname *.c -exec sed -e 's/street\s\+star/street komme/g' --in-place '{}' \;
发表于 : 2007-08-09 1:18
由 laborer
alinmn 写了:我错了 +应该是\+
laborer 你的dc -e后面的串怎么产生的?
代码: 全选
python -c 'print reduce(lambda a,b: a*256+ord(b), raw_input("Input a string: "), 0)'
发表于 : 2007-08-09 12:26
由 alinmn
呵呵 我一直在dc的man里面找了 谢了
发表于 : 2007-08-09 17:03
由 richardzhang
那如果我有一个目录记为conn,该目录下又有许多目录和文件,我想把conn下名字以act为开头的目录和文件名改为以ksaa开头命名,又该如何办呢?
比如一个目录名为actes改为ksaaes,请叫怎么做到?谢谢!
发表于 : 2007-08-09 21:58
由 eexpress
rename
发表于 : 2007-08-09 22:03
由 BigSnake.NET