使用空值查找和替换文本

时间:2017-10-29 09:34:07

标签: 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) (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'

但它没有用。我究竟做错了什么?请帮忙。

3 个答案:

答案 0 :(得分:1)

这取代了Rnc以及以下所有内容,包括最后一个=,没有任何内容。

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

答案 1 :(得分:0)

关注awksed解决方案也可能对您有帮助。

解决方案第一: 使用sed将匹配的正则表达式保留在内存中的功能。

sed 's/\([^(RncFunction)]*\)\(RncFunction.*=\)\(.*\)/\1\3/'   Input_file

第二个解决方案 :使用名为awk的{​​{1}}开箱即用的实用程序,它将根据字符串替换字符串提供正则表达式。

sub

答案 2 :(得分:0)

只需替换不需要的字符串:

$ 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