我有一个包含类似内容的文本文件
ESSID:"228"
Frequency:5.02 GHz (Channel 4)
Quality=7/94 Signal level=-89 dBm Noise level=-99 dBm
ESSID:"1_156"
Frequency:5.305 GHz (Channel 61)
Quality=28/94 Signal level=-68 dBm Noise level=-98 dBm
ESSID:""
Frequency:5.32 GHz (Channel 64)
Quality=7/94 Signal level=-89 dBm Noise level=-98 dBm
ESSID:""
Frequency:5.745 GHz (Channel 149)
Quality=21/94 Signal level=-75 dBm Noise level=-99 dBm
ESSID:"Apsnyaimadara"
Frequency:5.11 GHz (Channel 22)
Quality=22/94 Signal level=-74 dBm Noise level=-97 dBm
我想摆脱所有不包含数字的ESSID和一个" _"标志。如果它包含ESSID,你能告诉我如何删除一行:"那个模式之后的下一个符号不是一个数字? =)实际上我想完全删除那些块而不仅仅是一条线,但我可以从那开始,任何帮助都会非常感激=)
P.S。使用Sed
答案 0 :(得分:0)
使用GNU sed:
sed -nE '/ESSID:"[0-9_]+"/,/^$/p' file
或使用GNU grep:
grep -A3 -E 'ESSID:"[0-9_]+"' file
输出:
ESSID:"228" Frequency:5.02 GHz (Channel 4) Quality=7/94 Signal level=-89 dBm Noise level=-99 dBm ESSID:"1_156" Frequency:5.305 GHz (Channel 61) Quality=28/94 Signal level=-68 dBm Noise level=-98 dBm