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, "&")}'

posted @ 2016-09-26 09:30  Big_Foot  阅读(1467)  评论(0)    收藏  举报