代码之家  ›  专栏  ›  技术社区  ›  Lenny

grep输出显示具有文件名但不是完整路径的结果

  •  0
  • Lenny  · 技术社区  · 2 年前

    我使用 grep (egrp)在日志中搜索文本。我在同一个文件夹中有多个txt文件要搜索。默认情况下,grep输出文件名(完整路径)和数学结果。

    目录路径很长,所以看起来很难看。

    但是,如果我使用 -h 选项,它只给我匹配结果,但不给我文件名,这也不好,因为有时我需要知道它来自哪个文件。

    例如,在文件夹bashsearch中,我有file1、file2、file3。。。

    默认输出如下所示:

    /mnt/c/Users/chili/Desktop/.../bashsearch/file1:match result 1
    
    /mnt/c/Users/chili/Desktop/.../bashsearch/file2:match result 2
    

    这看起来很难看。

    如果我使用 -h ,输出如下:

    match result 1
    
    match result 2
    

    这也不好。

    我想要的是这样的:

    file1:match result 1
    
    file2:match result 2
    

    请问如何做到这一点?非常感谢您的帮助。

    0 回复  |  直到 2 年前
        1
  •  0
  •   Yoichi Nakayama    2 年前

    可以使用管道将输出重新格式化为另一个命令。例如

    | grep -o "[^/]*:.*"
    

    将删除路径部分。