Linux之文本处理-SED常用操作
一、标准变量替换和赋值
在sed中,巧妙运用 $(行尾) ^(行首) &(匹配项)进行文本替换操作,具体代码如下
#给变量赋值
[root@localhost ~]# str=111222333444555
#打印变量原始值
[root@localhost ~]# echo $str
111222333444555
#变量替换 &=被匹配的值
[root@localhost ~]# echo $str | sed 's/333/aaa&/'
111222aaa333444555
#变量替换 &=被匹配的值
[root@localhost ~]# echo $str | sed 's/333/&bbb/'
111222333bbb444555
#变量替换 &=被匹配的值
[root@localhost ~]# echo $str | sed 's/333/aaa&bbb/'
111222aaa333bbb444555
#变量替换 &=被匹配的值 只匹配了一次
[root@localhost ~]# echo $str | sed 's/3/aaa&bbb/'
111222aaa3bbb33444555
#变量替换 &=被匹配的值 加上g就全部匹配上了
[root@localhost ~]# echo $str | sed 's/3/aaa&bbb/g'
111222aaa3bbbaaa3bbbaaa3bbb444555
#行首匹配
[root@localhost ~]# echo $str | sed 's/^/aaa&bbb/'
aaabbb111222333444555
#行首匹配 加不加g都一样
[root@localhost ~]# echo $str | sed 's/^/aaa&bbb/g'
aaabbb111222333444555
#行尾匹配
[root@localhost ~]# echo $str | sed 's/$/aaa&bbb/'
111222333444555aaabbb
#行尾匹配 加不加g都一样
[root@localhost ~]# echo $str | sed 's/$/aaa&bbb/g'
111222333444555aaabbb
#打印变量当前值,没有变化,因为我们这是标准输出替换,并未赋值
[root@localhost ~]# echo $str
111222333444555
#通过以下语句进行赋值
[root@localhost ~]# str=`echo $str | sed 's/333/aaa&bbb/'`
#再打印变量,发现已经是我们想要的结果了
[root@localhost ~]# echo $str
111222aaa333bbb444555
二、未完待续