小编old*_*oxx的帖子

使用 find -exec grep,如何仅打印基本名称或将文件名/行内容拆分为单独的行?

我正在看源文件。实际上对于 PureBasic,但无论哪种语言,都涉及到共同的元素。就我而言,该命令将是 cover extensions pbpbipbfpbp

find . -name "*.pb*" -exec grep -Hnr ... \;
Run Code Online (Sandbox Code Playgroud)

问题是,这可能会导致很长的行,并且过于紧凑而不易阅读,因为它们包含full/path/filename.ext:ln#:contents of that line.

我想做两件事之一:要么完全切断路径(最后一个/在第一个之前:)并离开:

filename.ext:ln#:contents of that line
Run Code Online (Sandbox Code Playgroud)

或分割线,这样我就有:

full/path/filename.ext:    
ln#:contents of that line
Run Code Online (Sandbox Code Playgroud)

无论哪种方式都会使结果更具可读性。您甚至可以将其拆分为您拥有的位置:

full/path/filename.ext:ln#:  
contents of that line
Run Code Online (Sandbox Code Playgroud)

以提高可读性。我很灵活。它可以是其中任何一个。它甚至不必局限于一行命令或这些特定命令。

我已经尝试了我能找到的所有列出的技术,包括findgrepsed我无法让组合完全达到我想要的效果。

grep find

5
推荐指数
1
解决办法
5765
查看次数

标签 统计

find ×1

grep ×1