0

我需要搜索一个 .txt 文件,这仅适用于一个单词在一行中出现两次的情况。因此,如果我有这句话:“我今天喂了我的猫,我的猫很高兴”,它会返回 1,但前提是该词在同一行中出现两次。我需要整个文件的行数。我正在使用程序 putty 在 unix 中执行此操作。

4

4 回答 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 回答