【问题标题】:grep string with special characters in file文件中带有特殊字符的 grep 字符串
【发布时间】:2020-06-05 04:57:03
【问题描述】:

我的文件包含:

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

我尝试了以下:

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

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

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

【问题讨论】:

标签: linux bash shell grep


【解决方案1】:

假设你有一个这样的文字文本,

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

如果你想删除第 1 行和第 2 行,你可以使用

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

online grep demo

详情

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    相关资源
    最近更新 更多