四时宝库

程序员的知识宝库

Linux shell awk 用法(shell中的awk工具执行原理)

linux shell中awk肯定是一个实用的工具。awk有很多内建的字符串控制函数。我介绍一些用法:

1.for循环:

awk 'BEGIN{ for (i=1;i <=10;i++) {print i*i;} exit;}'

这个是计算10以内1-10的平方。

2.for循环数组元素:

awk 'BEGIN{arr [1]="one";arr [2]="two";arr[3]="three";arr[4]="four"; for (i in arr) { print arr[i]}}'

这是使用for循环输出数组中的元素。

3.查看字符串长度(整个记录的长度)

awk -F: { print length($0),$0}

4.查看字符串在指定字符串中的位置,返回位置编号从1开始。

awk 'BEGIN { str="One Two Three"; subs="Two"; ret=index(str,subs); print ret}'

这个返回值是5。

5.用定界符把字符串分割并且存入数组。

awk 'BEGIN{str="One Two Three"; split(str,arr," "); for(i in arr) {print arr[i]}}'

这里用定界符空格把字符串中的内容,分割成三部分,并且存放到了数组arr中,定界符用双引号括起来。

6.在字符串中用字符起止偏移量生成子串,并且返回子串值。

awk 'BEGIN{ str="hello the world"; subs=substr (str,2,5); print subs}'

这个字符编号是从1开始的。相当于在str字符串中截取了子串,从第二个字符到第五个字符。

7.使用sub(regex,replacement_str,string)把正则表达式匹配到的第一处内容替换成replacement_str。

awk 'BEGIN{str="hello world"; sub("world","linxi",str); print str}'

8.使用gsub()函数,替换掉正则表达式匹配到的所有内容。

awk 'BEGIN{str="hello world world"; gsub("world","linxi",str); print str}'

9.检查正则表达式是否匹配字符串。

awk 'BEGIN { str="hello world";subs="world";ret=match(str,subs); printf "Substring \"%s\" found at %d location.\n",subs,ret}'

返回位置从1开始编号。

鼓励的话语:芝兰生于幽谷,不以无人而不芳;君子修道立德,不以穷困而变节。君子美人,拥有好的品行,也如兰花一样,闲情雅致,让人久处不厌!命是弱者的借口,运是强者的谦词。没有顾忌,必将所向无敌!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接