sed命令和正则的用法
- 常规用法
- 使用#代替/的用法
- 扫描关键字后再进行替换
- sed c
- 统计异常出现次数
- 搜索指定时间日志sed -n
常规用法
sed -i ‘s/old/new/g’ example.txt
s
表示替换操作。old
是要被替换的字符串。new
是新的字符串。g
表示全局替换,即替换每一行中的所有匹配项。
使用#代替/的用法
sed -i “s#abc#替换后#g” my.txt 将my.txt里的abc都替换成 替换后
sed -i “s#-Xms[0-9]*#-Xmx16g#g” 将my.txt里的
扫描关键字后再进行替换
sed -i "/brokerName/s/(brokerName=)./\1broker-a/" my.log
1.去mylog里一行一行热搜 /brokerName/先找到含有brokerName的关键字
2.s/表示开始替换
3.(brokerName=). 表示要替换的正则 其中(xxxx) 的内容可供引用
4 /\1broker-a/ 表示要替换成的值,其中\1代表引用前面括起来的值即brokerName= 即最后完整的要替换的值为 brokerName=broker-a
sed c
sed -i “/.storePathRootDir/c\storePathRootDir=/app/appuser” config.conf
在文件中查找包含 .storePathRootDir 的行,并将其替换为storePathRootDir=/app/appuser具体解释如下:
c
: 表示替换(change)匹配到的整行内容。
统计异常出现次数
grep -rni ‘Exception:’ | sed ‘s/Exception.*/Exception/g’ | grep -Eo ‘[.a-zA-Z]+Exception’ | sort | uniq -c
搜索指定时间日志sed -n
sed -n ‘/超始时间/,/结束时间/p’ xxx.log >> test.log
sed -n ‘//,//p’ xxx.log >> test.log