sed 的替换功能 —— sed ‘ s / 替换前 / 替换后 / g ’ 文件名
这种替换不会真实改变文件
g是匹配到的项全部替换
替换后会自动全文打印,不止是匹配项的行
指定行号范围内进行的替换 —— sed ‘ 行号范围 s/ 替换前 / 替换后 /g ’
替换第1行至第10行内的 root 全部成 toor
正则表达务必加 –r 才生效
每个()括起来的算是一部分整体,可用 \1 , \2 , \3 ...依次代表,并可以在后续依次调用
这里把第一个冒号前的最后一个冒号后的内容进行了替换。
([ ^: ] +): —— 非冒号的任意字符,这个字符可以重复一次或者以上
(.*): —— 这个过程中假如是 A:B:C:D 则匹配到的内容会是 A:B:C: ,即找到最后一个冒号前面,而忽略之前的所有冒号,这叫 .* 的贪婪匹配。
当要替换的文件名中含有 / ,可能会造成歧义,这时需要脱义 \ / ,或者换特征分割符成 @ # 使用。
比如 /root/ 替换成 abc ,则为 sed -r ‘ / \/root\/ / abc /g ’ 或 sed -r ' @ /root/ @ abc @ g '
例如原文件:
通过 [ ] 的范围作用把 所有的英文字母删除掉。(不也就是替换成空嘛)
把所有的行前面加上 aaa:
只有一个()的时候,后面引用它时可以直接用 &