字符串信息
获取字符长度
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
获取字节长度
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()函数简单实现。