gpt4 book ai didi

linux - 用于计算文本文件中的 CR/LF 的 Bash 脚本

转载 作者:IT王子 更新时间:2023-10-29 00:53:01 25 4
gpt4 key购买 nike

我已经阅读了许多 awk 和 sed 衬垫来尝试执行我需要的,但似乎没有一个有效。我想做的只是计算我的 Linux 文件中 CR/LF 中断的数量。这个文件也有普通的 LF 换行符,我只需要知道我导入了多少真实记录。

我试过的一个这样的 awk 行是awk '/^M$/{n++}; END { print n+0 }' my_file 或类似的。这没有用。任何帮助都会很棒。我不是 awk 大师,所以请放轻松。

最佳答案

使用支持多字符记录分隔符的 GNU awk:

awk -v RS='\r\n' 'END{print NR}' file

这会将记录分隔符设置为 \r\n 并打印记录总数。

例如:

$ echo $'record 1\r\nrecord\n2\r\nrecord 3' > file
$ awk -v RS='\r\n' 'END{print NR}' file
3

对于那些认为这个答案不正确的人,让我再举一个例子。考虑文件:

bash-4.2$ cat -vet file
line 1$
line 2$
line 3bash-4.2$

(shell提示故意留在里面显示文件结尾)

具有正常的 UNIX 行结尾且文件末尾没有换行符。这个文件中有多少条记录?就个人而言,我会说有 3 个。但是,只有两个换行符。

关于linux - 用于计算文本文件中的 CR/LF 的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27491174/

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