awk中的split
awk的内置函数split能够将字符串拆分为词,然后保存在数组中。
格式:split(字符串,数组,字段分隔符)
1)name="76868&5676&435&43526&334&12312312&12321"
#awk 'BEGIN {print split('"\"$name\""', filearray, "&")}' /dev/null
或者
#awk 'BEGIN{len=split('"\"$str\""',newarray,"&"); for(i=1;i<=len;i++){print newarray[i]}}' /dev/null | sort -n -k1
说明:awk规定引用系统变量必须使用单引号加双引号,即'"$sysvar"'这样的格式,但是split函数也需要双引号来定界,但这个双引号又不能让sh解释,而应留给awk来解释,所以使用了\"和\"组成的双引号
用gawk也是一样的。如下为split.ksh脚本。
# cat split.ksh
#! /bin/ksh
str="76868&5676&435&43526&334&12312312&12321"
gawk 'BEGIN{len=split('"\"$str\""',newarray,"&"); for(i=1;i<=len;i++){print newarray[i]}}' | sort -n -k1
# ./split.ksh
334
435
5676
12321
43526
76868
12312312
2)awk 'BEGIN {print split("76868&5676&435&43526&334&12312312&12321", filearray, "&")}'

浙公网安备 33010602011771号