复制一个网站,网站静态页js文件中出现的"logo-title"后面的“深圳市",替换为“北京市”,其他地方的“深圳市”不用修改
使用grep 命令查找logo-title,查看文件中真实内容是什么样子的
grep -or 'logo-title.................'
命令中 . 是正则表达式,表示一个字符。再使用命令 列出包含有logo-title 的文件,命令:grep -rl 'logo-title .'
使用sed命令在找出的文件中替换。sed -ri 's/logo-title"},(.)\?"(深圳市)/logo-title"},\1\?"北京市/g' `grep -rl logo-title .`
命令解析: -r 表示支持正则表达式's///g' 表示替换字符串,s表示字符串,/// 三条/分成2部分,前面部分是旧字符串,后面部分是新字符串,即/old/new/旧字符串部分:logo-title"},(.)\?"(深圳市) 中 (.)又表示任意一个字符,括号表示分组。因为被替代的存在2种,需要都能兼容,logo-title"}, p?"深圳市logo-title"}, b?"深圳市新字符串部分:logo-title"},\1\?"北京市\1 表示去分组中的第一组,这个例子中第一组要么是p,要么是b,根据查找到的实际情况填写/g 表示全部替换`grep -rl logo-title .` 查找出的是包含有logo-title 的文件名,让sed去替换-r表示递归查找,即不管有多少层目录,都会去查找,-l 列出文件名