首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对同一行上的多个实例使用grep重复整行匹配

对同一行上的多个实例使用grep重复整行匹配
EN

Ask Ubuntu用户
提问于 2016-12-20 19:49:38
回答 1查看 1.3K关注 0票数 1

问题的一个分支:

在搜索以下文件中的字符串“香蕉”时,我们希望分别使用1、2、3和7个行的实例1、2、3和4。grep输出的数量应该等于匹配实例的数量,同时仍然返回整行。

代码语言:javascript
复制
There is one banana here
There are two banana banana here
There are three banana banana banana here
Basically there is no limit to how many banana banana banana banana banana banana banana we can have
In fact we need not have any too!

注意:如果我们取消了输出中整行的限制,我们就有:

代码语言:javascript
复制
grep -no "banana" tempfile 

回传

代码语言:javascript
复制
1:banana
2:banana
2:banana
3:banana
3:banana
3:banana
4:banana
4:banana
4:banana
4:banana
4:banana
4:banana
4:banana

有什么想法吗?

编辑:这是预期的输出

代码语言:javascript
复制
1 There is one banana here
2 There are two banana banana here
2 There are two banana banana here
3 There are three banana banana banana here
3 There are three banana banana banana here
3 There are three banana banana banana here
4 Basically there is no limit to how many banana banana banana banana banana banana banana we can have
4 Basically there is no limit to how many banana banana banana banana banana banana banana we can have
4 Basically there is no limit to how many banana banana banana banana banana banana banana we can have
4 Basically there is no limit to how many banana banana banana banana banana banana banana we can have
4 Basically there is no limit to how many banana banana banana banana banana banana banana we can have
4 Basically there is no limit to how many banana banana banana banana banana banana banana we can have
4 Basically there is no limit to how many banana banana banana banana banana banana banana we can have
EN

回答 1

Ask Ubuntu用户

发布于 2016-12-20 20:24:08

它不是很漂亮,但你可以用这样的

代码语言:javascript
复制
awk '{print NR, gsub(/banana/, "")' <tempfile

它通过使用awk gsub命令替换匹配模式(这里是香蕉)来工作,并返回它执行替换的次数。如果然后输出输入行号和匹配数

或多次重复输入行。

代码语言:javascript
复制
awk '{A=$0
b=gsub(/banana/, "")
for (i=1; i<=b; i++) print A
}' <tempfile
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/862793

复制
相关文章

相似问题

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