【问题标题】:What is the Unix command to display all lines of a file with two certain strings什么是显示具有两个特定字符串的文件的所有行的 Unix 命令
【发布时间】:2013-01-18 18:10:27
【问题描述】:

基本上,我有一个文件,我想搜索并仅显示包含字符串“abc”和“vhg”的行。这个 Unix 命令是什么?

【问题讨论】:

  • 是该行必须同时包含“abc”和“vhg”,还是该行必须包含“abc”或“vhg”(或两者)?如果它必须是两者,是按“abc”然后“vhg”的顺序,还是相反的顺序也算?另外,您是在使用 GNU grep 还是在其他系统上?一些答案适用于 GNU grep 而不是其他变体。

标签: regex file shell unix command


【解决方案1】:

由于尚未给出sed 解决方案:

sed -n '/abc/{ /vhg/p; }'

【讨论】:

    【解决方案2】:

    您可以使用grep:

    grep abc file.txt | grep vhg
    

    或

    你可以使用awk:

    awk '/abc/ && /vhg/' file.txt
    

    grep 的另一种方式:

    grep .*abc.*vhg file.txt
    

    【讨论】:

      【解决方案3】:

      使用grep 命令。

      grep 'word1\|word2\|word3' /path/to/file
      

      例子:

      grep 'abc\|vhg' filename
      

      【讨论】:

      • | 表示OR。它不是AND
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-28
      • 2015-10-25
      • 2012-03-12
      • 2019-05-27
      • 1970-01-01
      • 1970-01-01
      • 2010-11-01
      相关资源
      最近更新 更多