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