gpt4 book ai didi

linux - 为什么 Linux grep 没有给出正确的换行符计数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:18:10 28 4
gpt4 key购买 nike

在 Ubuntu 10.04.4 LTS 上,我做了以下小测试,得到了一个令人惊讶的结果:

首先,我创建了一个包含 5 行的文件并将其命名为 a.txt:

echo -e "1\n2\n3\n4\n5" > a.txt
$ cat a.txt
1
2
3
4
5

然后我运行 wc 来计算行数

$ wc -l a.txt
5 a.txt

但是,当我运行 grep 来计算有换行符的行数时,我得到了一个我不理解的答案:

$ grep -c -P '\n' a.txt
3

我的问题是:grep 是如何得到这个数字的?不应该是 4 吗?

最佳答案

请阅读精美手册!

 seq 1 5  | wc -l
5

seq 1 5 | grep -ac $'\n'
5

我不明白问题出在哪里!?

 seq 1 5  | hd
00000000 31 0a 32 0a 33 0a 34 0a 35 0a |1.2.3.4.5.|

说明:

  • -a 开关告诉 grep二进制 模式打开文件。 IE 不关心文本格式

  • $'\n' 语法由 bash 自己解析,运行 grep 之前。这样做可以将控制字符 作为参数传递给 下的任何命令。 .

关于linux - 为什么 Linux grep 没有给出正确的换行符计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928816/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com