我需要知道单词是单音节还是多音节。我要申请找出的方法是计算元音的块数。
我尝试使用这个正则表达式,但是对所有单词都没有好用
number_of_vowels=match($1,"[aouöüeiáóúőűéí]?[aouöüeiáóúőűéí]");
在
könyvtaár
könyvter
hozzászóles
mű
cikk
ős
期望的输出
könyvtaár 2 polysyllabic
könyvter 2 polysyllabic
hozzászóles 4 polysyllabic
mű 1 monosyllabic
cikk 1 monosyllabic
ős 1 monosyllabic
现在我正在使用这个正则表达式
a=match($1,"[aouöüeiáóúőűéí]+");
对于这个词“hozzászóles”,它给了我2,而不是4。
有关详细信息,请参阅de "b c cs d dz dzs f g gy h j k l ly m n ny p q r s sz t ty v w x y z zs"
答案 0 :(得分:2)
您可以使用此awk命令:
awk -F '[aouöüeiáóúőűéí]+' 'NF{
print $0, NF-1, (NF>2) ? "polysyllabic" : "monosyllabic"}' file | column -t
<强>输出:强>
könyvtaár 2 polysyllabic
könyvter 2 polysyllabic
hozzászóles 4 polysyllabic
mű 1 monosyllabic
cikk 1 monosyllabic
ős 1 monosyllabic
答案 1 :(得分:0)
如果您想使用awk函数来计算regep的出现次数(例如,如果它是较大脚本的一部分)那么您需要使用split()
或gsub()
,而不是{ {1}}:
match()
但如果您不需要执行此功能,那么只需使用@ anubhava的方法。