繁体   English   中英

grep 文件中带有特殊字符的字符串

[英]grep string with special characters in file

我的文件包含:

/*uid:68160*/\n            SELECT
/*uid:68160*/SELECT

我试过以下:

grep -vF "/[*]uid::[[:digit:]][*]/SELECT"

这有助于删除第二行。 如何通过 grep 删除第一行也试过:

grep -vF "/[*]uid::[[:digit:]][*]/\n            SELECT"

假设您有这样的文字

s='/*uid:68160*/\n            SELECT
/*uid:68160*/SELECT
Text'

并且您想删除第 1 行和第 2 行,您可以使用

 grep -Ev '/[*]uid:[[:digit:]]+[*]/(\\n *)?SELECT'

参见在线grep演示

细节

  • -Ev - E启用 POSIX ERE 并且v将否定结果
  • /[*]uid:[[:digit:]]+[*]/(\\n *)?SELECT - 匹配
    • /[*]uid: - 一个/*uid:字符串
    • [[:digit:]]+ - 1+ 位
    • [*]/ - 一个*/字符串
    • (\\n *)? - 一个可选组,匹配 1 或 0 次出现的\n两字符组合,然后匹配任何 0 或多个空格
    • SELECT - 一个字符串

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM