加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – grep:无效的正则表达式

发布时间:2020-12-14 01:12:39 所属栏目:Linux 来源:网络整理
导读:我有一个文本文件,如下所示: haha1,haha2,haha3,haha4test1,test2,test3,test4,[offline],test5letter1,letter2,letter3,letter4output1,output2,output3,output4check1,[core],check2num1,num2,num3,num4 我需要排除所有那些带有“[]”的行并将它们输出到
我有一个文本文件,如下所示:

haha1,haha2,haha3,haha4
test1,test2,test3,test4,[offline],test5
letter1,letter2,letter3,letter4
output1,output2,output3,output4
check1,[core],check2
num1,num2,num3,num4

我需要排除所有那些带有“[]”的行并将它们输出到另一个文件,而不是那些带有“[]”的行.

我目前正在使用此命令:

grep ",[" loaded.txt | wc -l > newloaded.txt

但它给了我一个错误:

grep: Invalid regular expression

解决方法

使用grep -F将搜索模式视为固定字符串.你也可以用grep -c替换wc -l.

grep -cF ",[" loaded.txt > newloaded.txt

如果你很好奇,[是一个特殊的角色.如果你不使用-F那么你需要用反斜杠来逃避它.

grep -c ",[" loaded.txt > newloaded.txt

顺便说一句,我不知道为什么你还在使用wc -l ……?从您的问题描述中,听起来像grep -v可能更合适. -v反转grep的正常输出,打印不匹配的行.

grep -vF ",[" loaded.txt > newloaded.txt

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读