我 正在 使用 grep 递归 来 搜索 文件 中 的 字符 串 , 并且 所有 匹配 的 文件 和 包含 该 字符 串 的 行 都 打印 在 终端 上 。 但是 是否 也 可以 获得 这些 行 的 行号 呢 ?
例如 : 目前 我 得到 的 是 /var/www/file.php: $options = "this.target"
, 但 我 试图 得到 的 是 /var/www/file.php: 1142 $options = "this.target";
, 其中 1142
是 包含 该 字符 串 的 行号 。
我 用来 递归 grep 的 语法 是 sudo grep -r 'pattern' '/var/www/file.php'
还有 一 个 问题 是 , 我们 如何 得到 不 等于 模式 的 结果 。 像 所有 的 文件 , 但 不是 那些 有 特定 字符 串 的 文件 ?
7条答案
按热度按时间jum4pzuy1#
yks3o0rb2#
行号打印为
grep -n
:为了只获得行号(没有匹配行),可以使用
cut
:grep -v
打印:t9aqgxwy3#
如果只需要行号,请执行以下操作:
示例:
ktca8awb4#
搜索模式并在模式前后显示20行
py49o6xq5#
grep -nr“搜索字符串”目录
这将为您提供带有行号的行。
tez616oj6#
为了用行号显示结果,您可以尝试
结果应该是这样的:
zwghvu4y7#
使用Vim时,您可以将
在你的.bashrc里然后
grepn搜索项文件1文件2 ...
导致
现在,只需将
vim +123 file1
复制到shell中,就可以在相应的行(例如第123行)上打开vim。