搜索多个文件时,grep 的输出如下所示:
{FILE}:{MATCH}
Run Code Online (Sandbox Code Playgroud)
这是一个问题,因为如果我双击该{FILE}
部分,我至少还会选择(并复制):
匹配项和可能的一些匹配项。我怎样才能让 grep 来代替它的输出格式如下:
{FILE} : {MATCH}
Run Code Online (Sandbox Code Playgroud)
基本上,我想在列之前插入一个空格。(以及可选的一个)
grep -T
将工作 7/8ths 的时间。
% for f in a ab abc abcd abcde abcdef abcdefg abcdefgh; do echo pattern > $f; done
% grep -T pattern *
a :pattern
ab :pattern
abc :pattern
abcd :pattern
abcde :pattern
abcdef :pattern
abcdefg:pattern
abcdefgh :pattern
Run Code Online (Sandbox Code Playgroud)
-T
--initial-tab
确保实际行内容的第一个字符位于制表位上,以便制表符的对齐看起来正常。这与他们的前缀输出到实际内容的选项很有用:
-H
,-n
,和-b
。为了提高来自单个文件的行都从同一列开始的可能性,这也会导致行号和字节偏移量(如果存在)以最小大小的字段宽度打印。
grep
据我所知,这不能单独完成。假设您的文件名中没有 a :
:
grep ... | sed 's/:/ : /'
Run Code Online (Sandbox Code Playgroud)
只有第一个:
会被填充。
当然,你可以告诉grep
只打印文件名:
grep -l ...
Run Code Online (Sandbox Code Playgroud)
就双击选择而言,单词的构成取决于终端(和/或 X 工具包),对于某些终端,可定制。
对于xterm
,字符按类别(字母、空格...)进行组织,双击可选择同一类别的相邻字符。
那里描述了默认值。在默认情况下,:
是不是在同一个班作为/
自己不在同一个班级为字母或数字。
某些系统通过为like提供资源文件来更改该默认值。xterm
/etc/X11/app-defaults/XTerm
在 Linux Mint 系统上,我发现:
! Here is a pattern that is useful for double-clicking on a URL:
*charClass: 33:48,35:48,37-38:48,43-47:48,58:48,61:48,63-64:48,95:48,126:48
Run Code Online (Sandbox Code Playgroud)
这将字符 58 ( :
) 和 47 与字母和数字 (48) 放在同一类中。
您可以做的是:
通过您自己的资源文件将其更改为保留在自己的类中。
例如,如果您添加:
XTerm*charClass: 33:48,35:48,37-38:48,43-47:48,61:48,63-64:48,95:48,126:48
Run Code Online (Sandbox Code Playgroud)
到您的~/".Xdefaults-$(uname -n)"
,然后双击文件名将停在:
.
你可以用它来试验:
xterm -cc 33:48,35:48,37-38:48,43-47:48,61:48,63-64:48,95:48,126:48
Run Code Online (Sandbox Code Playgroud)
您还可以在三次或四次单击时将不同的选择方法定义为正则表达式。例如
XTerm*on3Clicks: regex [^:]+
Run Code Online (Sandbox Code Playgroud)
将在三次单击时选择非冒号字符序列。
归档时间: |
|
查看次数: |
29728 次 |
最近记录: |