我需要搜索一个 .txt 文件,这仅适用于一个单词在一行中出现两次的情况。因此,如果我有这句话:“我今天喂了我的猫,我的猫很高兴”,它会返回 1,但前提是该词在同一行中出现两次。我需要整个文件的行数。我正在使用程序 putty 在 unix 中执行此操作。
问问题
147 次
4 回答
2
怎么样:
grep -e "cat.*cat" input | wc -l
于 2013-10-02T19:03:52.060 回答
2
grep "cat.*cat" input_file | wc -l
解释:
grep
:什么是grep?"cat.*cat"
:在这种情况下,要搜索的模式:字面意思cat
,后跟.*
,其中句点.
表示“匹配任何字符”,并且由星*
号(0或更多)量化,因此它们一起表示“匹配任意数量的字符”,然后从字面上看另一个cat
input_file
的下一个参数grep
,为了“拯救一只猫”(不要担心“拯救猫”部分,愚蠢的书呆子笑话=p)|
是 unix 中的管道命令,它stdout
从 grep 获取并将其馈送到stdin
下一个程序的,即...wc -l
- 调用“字数统计”程序并使用“行”选项计算行数。
于 2013-10-02T19:02:49.453 回答
1
awk
在一个命令中查找和计数
awk '/cat.*cat/ {a++} END {print a}' file
于 2013-10-02T19:20:29.740 回答
0
基本上:
cat.*cat
如果您只想匹配整个单词,您可能必须为单词边界添加锚点(依赖于工具的语法)。
于 2013-10-02T19:02:49.953 回答