Bash 查找并用空值替换文本

Bash 查找并用空值替换文本,bash,shell,sed,Bash,Shell,Sed,亲爱的,在我的一个输入文件中,文本如下所示 (LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XB3 (LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XC3 (LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XA0 (LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XB0 (LOCKED)

亲爱的,在我的一个输入文件中,文本如下所示

(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XB3 
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XC3 
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XA0 
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XB0 
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XC0 
现在,我希望通过从每行中删除“RncFunction=1,UtranCell=”得到如下输出

(LOCKED) (DISABLED) UE1146XB3 
(LOCKED) (DISABLED) UE1146XC3 
(LOCKED) (DISABLED) UE1146XA0 
(LOCKED) (DISABLED) UE1146XB0 
(LOCKED) (DISABLED) UE1146XC0 
我使用了下面的代码

cat input.log | sed 's\/RncFunction\ \g'

但它不起作用。我做错了什么?请提供帮助。

这将替换
Rnc
和所有以下内容,包括最后一个
=
,而不包含任何内容

sed 's/Rnc.*=//' input.log

以下
awk
sed
解决方案也可能对您有所帮助

解决方案1:使用
sed
将匹配的正则表达式保存到内存中的功能

sed 's/\([^(RncFunction)]*\)\(RncFunction.*=\)\(.*\)/\1\3/'   Input_file
解决方案2:使用名为
sub
awk
现成实用程序,该实用程序将根据提供的正则表达式替换字符串

awk '{sub(/RncFunction.*=/,"")} 1'   Input_file

只需将不需要的字符串替换为零:

$ cat /tmp/tmp.txt | sed 's/RncFunction=1,UtranCell=//'
(LOCKED) (DISABLED) UE1146XB3
(LOCKED) (DISABLED) UE1146XC3
(LOCKED) (DISABLED) UE1146XA0
(LOCKED) (DISABLED) UE1146XB0
(LOCKED) (DISABLED) UE1146XC0

$ cat /tmp/tmp.txt
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XB3
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XC3
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XA0
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XB0
(LOCKED) (DISABLED) RncFunction=1,UtranCell=UE1146XC0

不要在这里使用反斜杠“\”。欢迎使用堆栈溢出,请根据论坛规则为您的示例输入和示例输出、命令/脚本使用代码标记,谢谢。您的命令将适用于单行。以下代码适用于所有事件。sed's/Rnc.*=//g'输入。log@SajibIslam那不是真的。您误解了sed的工作原理以及最后的
g
的含义。试试看。