字符串信息

获取字符长度

chapter_3_1-1.awk

BEGIN{
}
{
    english = "That's a dog.";
    chinese = "那是一只狗。";
    englishAndChinese = "那只狗叫 joe";

    print("english len: "length(english)""blength(englishAndChinese));
    print("chinese len: "length(chinese));
    print("englishAndChinese len: "length(englishAndChinese));
}
END{
}

$echo ""|awk -f chapter_3_1-1.awk
english len: 13
chinese len: 6
englishAndChinese len: 8

length()用于获取字符串长度,需要注意的是长度的计算是按照字符数而不是字节数来的,函数原型:

length([s])
s 要计算长度信息的字符串,如果省略默认参数是$0

获取字节长度

chapter_3_1-2.awk

function blength(s) {
    "echo \""s"\\c\"|wc -c" | getline lenBytes;
    return lenBytes;
}

BEGIN{
}
{
    english = "That's a dog.";
    chinese = "那是一只狗。";
    englishAndChinese = "那只狗叫 joe";

    print("english len: "blength(english));
    print("chinese len: "blength(chinese));
    print("englishAndChinese len: "blength(englishAndChinese));
}
END{
}

$echo ""|awk -f chapter_3_1-2.awk
english len: 13
chinese len: 18
englishAndChinese len: 16

有的awk版本提供了blength()函数用于字符串字节数的计算,但绝大多数版本不不支持,以上是一个是使用系统wc命令的blength()函数简单实现。

results matching ""

    No results matching ""