小编Joh*_*eet的帖子

文本文件中某个单词的所有重复位置(按字数计算)

我想找到一个词在文本文件中出现的位置——就像一个词出现在文本中的词数——对于那个词的所有实例,但我什至不知道从哪里开始。我想我需要一个循环,以及 grep 和 wc 的某种组合。

例如,这是一篇关于 iPhone 11 的文章:

周二,该公司表示,其入门级手机 iPhone 11 的起售价为 700 美元,而去年同类机型的起价为 750 美元,这表明苹果正在关注那些不会竞相购买更昂贵手机的消费者。年。

苹果将​​其更高级机型 iPhone 11 Pro 和 iPhone 11 Pro Max 的起售价维持在 1,000 美元和 1,100 美元。该公司在其硅谷园区举行的 90 分钟新闻发布会上推出了新手机。

课文共81个字。

jaireaux@macbook:~$ wc -w temp.txt 
      81 temp.txt
Run Code Online (Sandbox Code Playgroud)

“iPhone”这个词出现了 3 次。

jaireaux@macbook:~$ grep -o -i iphone temp.txt | wc -w
       3
Run Code Online (Sandbox Code Playgroud)

我想要的输出是这样的:

jaireaux@macbook:~$ whereword iPhone temp.txt 
      24
      54
      57
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能得到那个输出?

grep wc

6
推荐指数
1
解决办法
503
查看次数

如何 grep 查找重复模式的重复模式?

我有一个文本文件 Fred.txt:

% cat -e fred.txt 
00:$
00:04:$
01:00:23:34$
01:$
01:40:$
01:40:32:$
%
Run Code Online (Sandbox Code Playgroud)

我可以 grep 查找包含 2 位数字和冒号的行:

% pcregrep -e '[\d]{2}:' fred.txt   
00:
00:04:
01:00:23:34
01:
01:40:
01:40:32:
%
Run Code Online (Sandbox Code Playgroud)

但是当我尝试获取该模式的重复模式时,它找不到它们:

% pcregrep -e '[[\d]{2}:]{2}' fred.txt
%
Run Code Online (Sandbox Code Playgroud)

我希望获得与此相同的输出:

% pcregrep -e '[\d]{2}:[\d]{2}:' fred.txt
00:04:
01:00:23:34
01:40:
01:40:32:
%
Run Code Online (Sandbox Code Playgroud)

最终,我将在更大的文件中寻找更多嵌套的重复模式,因此我不想每次重复模式时都进行定义。如何 grep 查找重复该模式的行?

grep regular-expression pcregrep

6
推荐指数
3
解决办法
5022
查看次数

标签 统计

grep ×2

pcregrep ×1

regular-expression ×1

wc ×1