AWK - 提取单词的最后一个音节
AWK - Extracting the last syllable of words
我必须提取几个单词的最后一个音节。
单词总是以辅音结尾。
可能的辅音是这些:"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"
可能的元音是这些:"a o u ö ü e i á ó ú ő ű é í"
鉴于这个词,"vélemény",我必须提取 ény
鉴于这个词,"otthion",我必须提取 ion
鉴于这个词,"feladat",我必须提取 at
我做了这个功能,会return最后一个的位置vowel.But如果两个元音在一起怎么办?
function extrac(arr1,arr2,x1)
{
# arr1 - array-vowels "a o u ö ü..."
# arr2 - array-word divided into letters
# x1 - length-arr2
for (ix=x1; ix>0; ix--)
{
for (jx=1; jx<=14; jx++)
{
if (arr1[jx] == arr2[ix])
{
return ix;
}
}
}
}
在
vélemény
otthion
feladat
期望的输出:
vélemény ény
otthion ion
feladat at
$ awk 'match([=10=],/[aouöüeiáóúőűéí]+[^aouöüeiáóúőűéí]+$/,a){print [=10=], a[0]}' file
vélemény ény
otthion ion
feladat at
以上使用 GNU awk 作为第三个参数来匹配 ()。对于其他 awks,它将是:
$ awk 'match([=11=],/[aouöüeiáóúőűéí]+[^aouöüeiáóúőűéí]+$/){print [=11=], substr([=11=],RSTART,RLENGTH)}' file
vélemény ény
otthion ion
feladat at
对于某些 awk,您也许可以使用等价 类 而不是列出每个元音的每个可能变体:
/[[=a=][=e=][=i=][=o=][=u=]]+[^[=a=][=e=][=i=][=o=][=u=]]+$/
但是 GNU awk 不支持等效 类。
我必须提取几个单词的最后一个音节。
单词总是以辅音结尾。
可能的辅音是这些:"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"
可能的元音是这些:"a o u ö ü e i á ó ú ő ű é í"
鉴于这个词,"vélemény",我必须提取 ény
鉴于这个词,"otthion",我必须提取 ion
鉴于这个词,"feladat",我必须提取 at
我做了这个功能,会return最后一个的位置vowel.But如果两个元音在一起怎么办?
function extrac(arr1,arr2,x1)
{
# arr1 - array-vowels "a o u ö ü..."
# arr2 - array-word divided into letters
# x1 - length-arr2
for (ix=x1; ix>0; ix--)
{
for (jx=1; jx<=14; jx++)
{
if (arr1[jx] == arr2[ix])
{
return ix;
}
}
}
}
在
vélemény
otthion
feladat
期望的输出:
vélemény ény
otthion ion
feladat at
$ awk 'match([=10=],/[aouöüeiáóúőűéí]+[^aouöüeiáóúőűéí]+$/,a){print [=10=], a[0]}' file
vélemény ény
otthion ion
feladat at
以上使用 GNU awk 作为第三个参数来匹配 ()。对于其他 awks,它将是:
$ awk 'match([=11=],/[aouöüeiáóúőűéí]+[^aouöüeiáóúőűéí]+$/){print [=11=], substr([=11=],RSTART,RLENGTH)}' file
vélemény ény
otthion ion
feladat at
对于某些 awk,您也许可以使用等价 类 而不是列出每个元音的每个可能变体:
/[[=a=][=e=][=i=][=o=][=u=]]+[^[=a=][=e=][=i=][=o=][=u=]]+$/
但是 GNU awk 不支持等效 类。