如何计算只有 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
我试图只打印计数的只有 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