你好,我想计算特定长度的单词数量。我正在使用这个命令。
awk 'length == 2' mydict.txt | wc -l
这段代码给出了我想要的结果,但如果尝试用变量代替数字 2,它就不起作用。代码如下
awk 'length == $var' mydict.txt | wc -l
终端打印 0。我该怎么办?
答案1
变量不会在单引号 ( '
) 中扩展。
通常,您可以简单地使用双引号("
),但对于awk
,这不是一个好的解决方案,因为它会导致awk
代码稍微复杂一些的问题。
最好使用以下命令分配awk
变量-v
:
awk -v var="$var" 'length == var' mydict.txt | wc -l
但是,没有必要wc -l
,awk
可以为您做到这一点:
awk -v var="$var" 'length == var{n++} END{print n}' mydict.txt
您还可以使用grep -c
:
grep -c "^.\{$var\}\$" mydict.txt