比如同一目录下的所有文件。
将文本A替换成文本B。
Mac下。
将文本A替换成文本B。
Mac下。
|
kailuoAug 14, 2010
1
Automator 做不了?
|
|
chuangboAug 14, 2010
2
sed -i "s/xxx/xxxx/g" somedir/*
或者 awk 脚本 |
|
3
|
|
chuangboAug 14, 2010
4
无关,那个/是sed参数之间的间隔
sed -i "s/V2EX/{{ site_name }}/g" somedir/* |
|
5
@chuangbo 可是有些地方我想保留“V2EX”。我只是要把部分硬链接(是不是叫这个名字?)变软。
我好奇。假如: sed -i "s/<a href="/">V2EX</a>/<a href="/">{{ site_name }}</a>/g" tpl/* 它怎么知道我的引号和"/"该在什么时候闭合?需要用到(那叫什么来着?)转义符(是这个名字吗?)吗? 谢谢! |
|
chuangboAug 14, 2010
6
我都是这么替换的,如果一个文件夹内可能在任何层级的任何子目录的任何文件都有可能包含
somefile.v5.js 或者 somefile.v9.js 我需要全部换成 somefile.v19.js 那么 egrep "somefile\.v\d+\.js" -Ir * | xargs -I '{}' sed -i "s/somefile.v..js/somefile.v19.js/g" 其中,egrep负责递归找出包含有这行的文件,然后xargs对上一结果的每一行执行sed命令,sed命令负责替换 更复杂的话还是要写awk脚本了 |
|
chuangboAug 14, 2010
7
最外层用单引号 :)
|
|
chuangboAug 14, 2010
8
引号可以把最外层改为单引号解决
/可以用\/转义 |
|
ninjaiAug 14, 2010
9
dreamweaver之类的富文本编辑器,支持正则表达式
|
|
chuangboAug 14, 2010
10
sed 's/<a href="\/">V2EX<\/a>/<a href="\/">{{ site_name }}<\/a>/g' somedir/*
|
|
12
TextMate
CMD+SHIFT+F |
|
13
@Livid 这个太强了!
我本来就用TextMate来着。但是不知道这个方法。 我用了一个很冏的方法就是鼠标选侧栏的文件(未打开状态),然后执行CMD+F 结果当然是失败的。 现在好了。谢谢! 同谢其他热心回答的朋友。学习了。:) |