页次: 1
(与小白共享,老鸟请闭眼)
命令:
sed -i -f ../sed-change `grep -rl "http://ayni.ceph.com/public/js/ceph.js"`
说明:
1、sed的 -i 选项表示直接(就地)处理文件。如果不加 -i 选项,sed仅仅将处理结果输出到屏幕而不对所处理的文件做修改;加了 -i 则直接修改所处理的原始文件。
2、sed的 -f 选项表示使用sed操作脚本,紧跟 -f 后面的 ../sed-change 就是sed操作脚本,内容为:
s/http:\/\/ayni.ceph.com\/public\/js\/ceph.js/..\/_static\/ceph.js/
脚本含义:搜索字符串“http://ayni.ceph.com/public/js/ceph.js”并用新字符串“../_static/ceph.js”替换。
3、两个反引号(即 `)括起来的部分是sed要处理的文件,用grep逐一搜索出来并逐一传递给sed处理。grep的 -r 选项表示递归处理子目录,-l 选项(小写的字母L)表示只列出匹配行所在文件的文件名(每个文件名只列一次),文件名之间用换行符分隔。
最近编辑记录 糊涂 (2015-03-07 01:25:58)
想装X,别装X
离线
这样写更好读:
s=http://ayni.ceph.com/public/js/ceph.js=../_static/ceph.js=
建议用 $() 而不是 ``。
还有,符合条件的文件名里有空格就会出错了。
还有,BSD 系统上的 sed -i 选项后必须给出作为备份文件的后缀,否则会报错。
最近编辑记录 依云 (2015-03-07 12:06:20)
离线
哈哈,糊糊好可怜
离线
哈哈,糊糊好可怜
没啥。我本来就是现学的。怕以后忘了先记下来。百合指出的这几点,以后我会一一研习。再说,我开头第一句就声明了,“老鸟们闭眼”
最近编辑记录 糊涂 (2015-03-16 12:01:20)
想装X,别装X
离线
页次: 1