sed可用来编辑文本,主要作用是查找和替换;
1.查找
sed -n /ahcming/p
以上作用等同于
grep 'ahcming'
使用-n,sed将不会在操作完成后打印,只有p才表示输出
2替换
sed '命令行'
sed 's/查找内容/替换内容/'
sed 's/查找内容/替换内容/g'
行为模式:
每次读取一行,查找有无匹配的查找内容,如果有,则替换之
说明:
1.s表示替换,将此行第一个 查找内容-->替换内容
2.命令行内分格符不限定,比如可用;|*皆可,如果查找内容和替换内容中包含与分格符相同的字符,需要转义\
3.在命令行结束用g表示此行所有 查找内容-->替换内容,如果此位置为一数字(N),表示替换第N个查找内容,不写即默认,表示第一个
4.查找内容与替换内容支持正则表达式,支持shell脚本变量
替换特定行
sed '/过滤内容/ s/查找内容/替换内容/g'
sed '/过滤内容/,/多个过滤内容/ s/查找内容/替换内容/g'
说明:
查找包含过滤内容的特定行,并将此行中所有查找内容,替换为替换内容
过滤内容当然支持正则表达式
3.用sed来修改文件
sed 's/xxxx/xxxxxx/g' < file > file.old mv file.old file 不要这样 sed 's/xxxx/xxxx/g ' < file > file sed 's/xxxx/xxxxx/g' < file >> file 原因很简单,自己想
4.使用正则表达式
sed 只支持BRE(基本正则表达式,与之对应的是ERE,扩展正则表达式)
主要区别
\{n\} # 重复n次 \{n,\} \{n, m\} \(,\) 简而言之:就是要转义