如何在文本文件中搜索特定整数

nob*_*bar 1 command-line search

是否有一种简单的方法来搜索特定整数的所有实例的文本文件(源代码)。这不应在碰巧包含整数作为子字符串的较大数字上触发,但它不能简单地排除此类行,因为它们可能包含两种情况:

搜索“6”...

int a=6; // found
int b=16; // not found (despite the '6' in '16')
int c=6, d=16; // found
Run Code Online (Sandbox Code Playgroud)

我真的在寻找一种命令行方法来解决这个问题,但也很好奇是否有一个FOSS GUI 类型的编辑器可以做到这一点。

Ale*_*ies 6

grep -E '\b6\b'

\b 是一个“词边界”

编辑:将@nobar 指向正确的方向后,他-w在联机帮助页中找到/指出了快捷方式选项(word-regexp),将上述内容简化为:

grep -w 6

如果经常使用,您可以使用类似于

wgrp(){ grep -w "$1" "$2"; }

注意(致@glenn-jackman):如果您不在"$2"这里引用,您可以将该函数用作管道过滤器。但是,是的,那么它不适用于带空格的文件名。

在阅读了@Gilles 的另一个很棒的答案后,我现在提议

igrp(){ grep -E "(^|[^0-9])$1($|[^0-9])" "$2"; }