sed和awk日常记录

/ 0评 / 0
0|23|xxx
|0|234|xx
|1|23|gfds
1|33|dsf|

查找开头没有 | 的行,并添加上 | 

sed '/^|/! s/^/|/'   ---匹配每行开头不是|的。然后在开头添加上|         
|0|23|xxx
|0|234|xx
|1|23|gfds
|1|33|dsf|


sed '/^|/ s/^/|/' (这个是匹配开头是|的 没有感叹号)
0|23|xxx
||0|234|xx
||1|23|gfds
1|33|dsf|


在匹配的内容前一行或后一行添加内容

#匹配行前加
sed -i '/123/i\456' test.txt

#匹配行后加
sed -i '/123/a\456' test.txt



删除两行之间的内容
sed -i '/abc123/,/def456/{//!d}'  abc.txt

获取两个字符串之间的内容 //通过sed正则匹配
#cat abc
Mon Mar 8 12:50:58 2021 response alt2-mtalk.abc.com from 127.0.0.1:5353 - 100.250.138.188, pass

#sed -E 's/.*response\ (.*)\ from.*/\1/' abc

#cat cc
2023-02-12 10:39:01 -- usernum:[132]

sed -E 's/.*\[(.*)\].*/\1/'` cc
根据正则匹配替换

发表评论

邮箱地址不会被公开。 必填项已用*标注