首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用grep仅报告行号

使用grep仅报告行号
EN

Stack Overflow用户
提问于 2011-08-05 23:33:05
回答 7查看 112.2K关注 0票数 113

我有一个可能包含错误格式的文件(在本例中,出现了模式\\backslash)。我想使用grep来只返回出现这种情况的行号(如在这里,匹配在这里,转到第#x行并修复它)。

但是,似乎没有一种方法可以打印行号(grep -n),而不是打印匹配或行本身。

我可以使用另一个正则表达式来提取行号,但我希望确保grep不能自己完成。我认为grep -no是最接近的,但仍然显示匹配结果。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-08-05 23:43:27

尝试:

代码语言:javascript
复制
grep -n "text to find" file.ext | cut -f1 -d:
票数 173
EN

Stack Overflow用户

发布于 2011-08-07 12:06:21

如果您对使用AWK持开放态度:

代码语言:javascript
复制
awk '/textstring/ {print FNR}' textfile

在本例中,FNR是行号。当您正在查看grep|cut时,或者在任何时候需要获取grep输出并对其进行操作时,AWK都是一个很好的工具。

票数 48
EN

Stack Overflow用户

发布于 2013-09-18 19:02:10

所有这些答案都需要grep生成整个匹配的行,然后通过管道将其传递给另一个程序。如果您的行很长,那么使用sed输出行号可能会更有效:

代码语言:javascript
复制
sed -n '/pattern/=' filename
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6958841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档