在 solaris 中使用 sed 替换字符串

using sed replace a string in solaris

我有以下文件:

.   TAU 4236-DA 20
4236-DA - SMS
4236-DA - EMAIL
MID=4236,SC=
{AnyText}
,DABAL1=
{AnyText}
,DAEXP1=
{AnyText}
,MSISDN=
{AnyText}
»
«
.   TAU 3065-DA 20
3065-DA - SMS
3065-DA - EMAIL
MID=7364,DABAL1=
{AnyText}
,DAEXP1=
{AnyText}
,MSISDN=
{AnyText}
,USEDVAL=
{AnyText}
,EXCESS=
{AnyText}
»

我想要以下输出:

.   TAU 4236    20
4236-DA - SMS
4236-DA - EMAIL
MID=4236,SC=
{AnyText}
,DABAL1=
{AnyText}
,DAEXP1=
{AnyText}
,MSISDN=
{AnyText}
»
«
.   TAU 3065    20
3065-DA - SMS
3065-DA - EMAIL
MID=7364,DABAL1=
{AnyText}
,DAEXP1=
{AnyText}
,MSISDN=
{AnyText}
,USEDVAL=
{AnyText}
,EXCESS=
{AnyText}
»

[我想从 . TAU 线]。请帮助。另请注意,文件中有多个字符串代替了我要删除的“-DA”。像“-DA”、“-LA”、“-MA”

您可以像这样使用分组来匹配 TAU XXXX :

sed -r 's/(TAU\s+[0-9]{4})-DA/   /g' data.txt

-DA 前面是组 (TAU\s+[0-9]{4})

时,这将用 3 个空格替换 -DA

awk :

awk '{ print gensub(/(TAU\s+[0-9]{4})-DA/,"\1   ","g",[=11=]); }' data.txt