使用 grep 时获取行号

新手上路,请多包涵

我正在使用 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'

还有一个问题是,我们如何获得不等于模式的结果。像所有文件一样,但不是具有特定字符串的文件?

原文由 sai 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 931
2 个回答
grep -n SEARCHTERM file1 file2 ...

原文由 Miro A. 发布,翻译遵循 CC BY-SA 4.0 许可协议

行号用 grep -n 打印:

 grep -n pattern file.txt

要仅获取行号(没有匹配行),可以使用 cut

 grep -n pattern file.txt | cut -d : -f 1

包含模式的行使用 grep -v 打印:

 grep -v pattern file.txt

原文由 carlodef 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题