awk中split函数的用法

The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep.


time=12:34:56
echo $time | awk '{split($0,a,":" ); print a[1]}'
12
 
echo $time | awk '{split($0,a,":" ); print a[3]}'
34
 
echo $time | awk '{split($0,a,":" ); print a[1]":"a[2]":"a[3]}'
12:34:56
 
echo $time | awk '{split($0,a,":" ); for (i=1; i<=3; i++) print a[i]}'
12
34
56

脚本获取IP地址的所在地:

[root@node2 ~]# cat ips.txt 
220.181.111.86
182.140.167.44
173.194.127.67
[root@node2 ~]# cat ipaddr.sh 
#!/bin/bash

IPs=`cat /root/ips.txt`
for i in $IPs
do
	curl -s "http://www.ip138.com/ips138.asp?ip="$i"&action=2"| iconv -f gbk -t utf8 |awk -F'<' '/<ul class="ul1">/{split($4,a,":");print a[2],a[3]}'
done

注意上面split函数的冒号是中文的冒号。

[root@node2 ~]# bash ipaddr.sh 
北京市 南三环洋桥电信机房 电信 
四川省成都市  电信 
美国


你可能感兴趣的:(函数,awk,split,用法)