【问题标题】:-v option doesn't work in grep-v 选项在 grep 中不起作用
【发布时间】:2018-10-17 13:45:09
【问题描述】:

假设输入是:

Something 
abcdefg
wordwordwordword
sjsjfifdsjifdsojs

我目前有这个代码:grep --no-group-separator -A 1 "Something",它可以正确打印出来

Something
abcdefg

但是当我添加 -v 来反转输出 (grep --no-group-separator -vA 1 "Something") 时,它会输出整个输入,包括“Something”和“abcdefg”,而不仅仅是打印

wordwordwordword
sjsjfifdsjifdsojs

我试过将 -v 放在不同的地方,但还是不行。我做错了什么?

【问题讨论】:

  • 反向是什么意思? -v 选项省略找到匹配项的特定行。请在此处明确您的问题,并在同一时间告诉我们。
  • 您想在我们找到grep的匹配后打印行吗??
  • 无法复制。我得到abcdefgwordwordwordwordsomething something
  • 您想要文件中的所有内容,但 grep 的结果除外?对吗?
  • 我也不明白;如果我运行它,它可以找到:echo "Something abcdefg wordwordwordword sjsjfifdsjifdsojs" | grep --no-group-separator -A 1 -v "Something";也许您实际上使用的输入与您的问题中的输入不同?

标签: regex linux bash scripting grep


【解决方案1】:

我相信类似下面的方法可以解决问题:

grep -v "$(grep -A1 Something your_file)" your_file

【讨论】:

  • 不应该是testyour_file
  • @Vasan 已修复。谢谢
【解决方案2】:

我认为“某事”之前的那一行与某事不匹配。因此,也打印了带有“某物”的下一行。 (因为 -A 1)

【讨论】:

    猜你喜欢
    • 2018-06-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 2022-01-10
    • 2018-06-12
    • 1970-01-01
    • 2016-04-24
    相关资源
    最近更新 更多