如何在搜索带空格的字符串时使用 grep 获得超过 20 行的输出

如何在搜索带空格的字符串时使用 grep 获得超过 20 行的输出

我目前正在使用 grep,如下所示:

grep search_string search_file > output_file

这是一个例子:

grep "ich arbeite" deu.txt > out.txt

以这种方式使用时,我只能获取 out.txt 中的最后 20 个匹配项。我认为这是因为 search_string 包含空格和引号,因为当我尝试时:

grep arbeite deu.txt > out.txt

...我得到了预期的结果(所有匹配项都显示在 out.txt 中)

当我搜索包含空格的字符串时,如何让 grep 返回所有匹配项?

编辑:我的输入如下所示:

...
I wonder why.   Ich frage mich, warum.
I work a lot.   Ich arbeite viel.
I'll ask Tom.   Ich frage mal Tom.
...
I wish Tom wouldn't keep bothering me with questions.   Ich wünschte, Tom würde aufhören, mich mit Fragen zu nerven.
I wonder if Tom realizes how many hours a day I work.   Ich frage mich, ob Tom klar ist, wie viele Stunden täglich ich arbeite.
...

答案1

事实证明,像我一样使用引号仅返回区分大小写的匹配项(其中正好有 20 个)。将 search_string 更改为

“我是阿尔贝特”

随后返回第一个“I”为大写的所有匹配项。我之所以没有注意到这一点,是因为我要查找的大多数早期匹配项的 I 都是大写的,而我没有查找的后期匹配项的 I 都是小写的。

相关内容