在 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
我有以下文件:
. 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})
-DA
或 awk
:
awk '{ print gensub(/(TAU\s+[0-9]{4})-DA/,"\1 ","g",[=11=]); }' data.txt