我有一个测试文件:
base64_decode(xxx)
bas'.'e64'.'_decode(xxx)
ba'.'s'.'e64'.'_deco'.'de(xxx)
xxxxxxx
ttttttt
bbbbbb
vvvvvvv
b'.'a'.'s'.'e'.'64'.'_de'.'co'.'de(xxx)
我有测试命令
grep -i -E -e "b[\'\.]*a[\'\.]*s[\'\.]*e[\'\.]*6[\'\.]*4[\'\.]*_[\'\.]*d[\'\.]*e[\'\.]*c[\'\.]*o[\'\.]*d[\'\.]*e[\'\.]*" test.txt
但是,结果包括行
base64_decode(xxx)
我想删除这一行:
base64_decode(xxx)
并且必须包含以下行:
bas'.'e64'.'_decode(xxx)
ba'.'s'.'e64'.'_deco'.'de(xxx)
b'.'a'.'s'.'e'.'64'.'_de'.'co'.'de(xxx)
我认为我的正则表达式字符串是错误的。
请帮助我,谢谢~~~
答案 0 :(得分:1)
grep "'" file
输出:
bas'.'e64'.'_decode(xxx) ba'.'s'.'e64'.'_deco'.'de(xxx) b'.'a'.'s'.'e'.'64'.'_de'.'co'.'de(xxx)
答案 1 :(得分:0)
你没试过吗?
cat <file> | grep -v base64
或波希米亚评论
grep -v base64 <file>
答案 2 :(得分:0)
我不知道grep,所以我不确定这个正则表达式是否会起作用,因为它需要支持积极前瞻。但这是:
^b(?=[ase64_dcod]*')[.']*a[.']*s[.']*e[.']*6[.']*4[.']*_[.']*d[.']*e[.']*c[.']*o[.']*d[.']*e[.']*.+$
基本上检查在匹配其余字符串之前,在初始'b'之后的某处是否有单引号。
如果支持,*之后的所有格修饰符(+)可能会加快搜索速度。