如何计算只有 1 个字符的行数?

How to count number of lines with only 1 character?

我试图只打印计数的只有 1 个字符的行数。

我有一个 200k 行的文件,有些行只有一个字符(任何类型的字符)

因为我没有经验,所以我在谷歌上搜索了很多,抓取了文档,并从不同来源提出了这个混合解决方案:

awk -F^\w$ '{print NF-1}' myfile.log

我原以为它会过滤单个字符的行,它似乎有效

^\w$

但是我没有得到包含单个字符的行数。而是这样的:

您可以尝试以下方法:

awk '/^.$/{++c}END{print c}' file

变量c每行仅包含1个字符(任何字符)递增。
文件解析完成后,打印变量。

如果非 awk 解决方案可以:

grep -c '^.$'

在 awk 中,{print NF-1} 之类的规则针对 each 行执行。要为整个文件只打印一件东西,您必须使用 END { print ... }。在那里你可以打印一个计数器,每次你看到一行有一个字符时你会递增。

但是,我会改用 grep,因为它更容易编写并且执行起来更快:

grep -xc . yourFile