我有一个包含引号,逗号和空格的文本文件。
"'x','a b c'"
"'x','a b c','1','2 3'"
"'x','a b c','22'"
"'x','a b z'"
"'x','s d 2'"
但是,当我尝试使用grep提取完全匹配项时,它不会显示结果。以下是我尝试使用的命令。
grep -E "\"\'x\'\,\'a\s\+b\s\+c\'\"" test.txt
预期输出:“'x','ab c'”
你近了!几个注意事项:
不要使用\s。它是一个gnu扩展,并非在任何地方都可用。最好使用字符类[[:space:]],或者只匹配一个空格。 在+可能会误导-在-E模式下,它文字匹配+,而无需-E所述+匹配的一个或多个前面的字符。转义取决于您使用的模式。 您无需逃避一切!在"双引号中时,请转义双引号""",而不是在单引号中转义单引号和逗号,"',"将其解释为just "',"。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。