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