我带着一个让我难过的问题来找你。我试图找到文件中的行数(在这种情况下,某个站点的html)长于x(在本例中为80)。
例如:google.com(通过wc -l检查)有7行,其中两行超过80行(使用awk' {print NF}'进行检查)。我试图找到一种方法来检查多少行超过80,然后输出该数字。
到目前为止,我的命令如下所示:
wget -qO - google.com | awk '{print NF}' | sort -g
我在考虑只计算哪些行的值大于80,但我无法弄清楚它的语法。也许' awk'?也许我会以最笨拙的方式解决这个问题,并且出于某种原因撞墙。
感谢您的帮助!
编辑:测量单位是字符。该命令应该能够找到其中包含超过80个字符的行数。
答案 0 :(得分:3)
如果你想要超过80个字符的行数(你的问题是缺少单位),grep
是一个很好的候选人:
grep -c '.\{80\}'
所以:
wget -qO - google.com | grep -c '.\{80\}'
输出6。
答案 1 :(得分:2)
使用awk:
wget -qO - google.com | awk 'NF>80{count++} END{print count}'
这给出2
作为输出,因为有两行超过80个字段。
如果你的意思是字符数(根据你在问题中的内容推测字段),那么:
wget -qO - google.com | awk 'length($0)>80{c++} END{print c}'
给出了6
。
答案 2 :(得分:2)
Blue Moon's answer(在其原始版本中)将打印字段数,而不是行的长度。由于awk中的默认字段分隔符为' '
(空格),因此您将获得字数,而不是行的长度。
试试这个:
wget -q0 - google.com | awk '{ if (length($0) > 80) count++; } END{print count}'