b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

awk中的几个常用功能

电脑杂谈  发布时间:2020-04-24 18:17:10  来源:网络整理

perl 数组 长度_awk数组长度_数组长度 perl

一个,分开

awk的内置函数split允许您将字符串分离为单词并将它们存储在数组中. 您可以自己定义域分隔符,也可以使用当前的FS(域分隔符)值.

格式:

分割(字符串,数组,字段分隔符)

split(字符串,数组)->如果未提供第三个参数,则awk默认使用当前FS值.

time="12:34:56"
echo $time | awk '{split($0,a,":");print a[1],a[2],a[3]}'
12 34 56
[root@tian1 zhiping.wang]# cat test.txt
Tom    2012-12-11      car     53000
John   2013-01-13      bike    41000
vivi    2013-01-18      car     42800
Tom    2013-01-20      car     32500
John   2013-01-28      bike    63500
输出一月份每个员工的工资:
cat test.txt | awk '{split($2,a,"-");if(a[2]=01){sum[$1]+=$4}}END{for(i in sum) print sum[i],i}'

awk数组长度_数组长度 perl_perl 数组 长度

第二个substr拦截字符串

将子字符串从起始位置返回到指定的长度;如果未指定长度,则将子字符串从字符串的起始位置返回到字符串的结尾.

格式:

substr(s,p)从p开始返回字符串s的后缀部分

substr(sawk数组长度,p,n)返回字符串s的后缀部分,其长度n从p开始

 echo "123" | awk '{print substr($0,1,1)}'
1

awk数组长度_数组长度 perl_perl 数组 长度

awk -F': ''{print substr($ 3,6)}'---->表示从第三个字段的第六个字符开始,一直到设置的分隔符“,”结束

sub($ 3,10,8)----->表示从第三个字段的第十个字段开始awk数组长度,以八个字符结尾

substr($ 3,6)---->表示从第三个字段中的第六个字符开始,一直到结束

三,长度字符串长度

length函数返回不带参数的字符串的长度. 长度函数返回整个记录中的字符数

echo "123" | awk '{print length}'

数组长度 perl_perl 数组 长度_awk数组长度

四个gsub函数

The

gsub函数使所有正则表达式都匹配时进行替换. gsub(正则表达式,替换字符串,目标字符串);称为gsub(r,s,t)

示例: 用def替换文件中所有包含abc的行中的abc,然后输出第一和第三列

awk '$0 ~ /abc/ {gsub("abc", "def", $0); print $1, $3}' test.txt

五个,下一个

awk数组长度_数组长度 perl_perl 数组 长度

在awk中,如果调用了next,则将全部执行next之后的命令,并且此行文本的处理在此处结束,然后读取下一条记录并进行操作

图片

以NR和FNR的典型应用为例:

现在有两种文件格式,如下所示:

#cat account
张三|000001
李四|000002
#cat cdr
000001|10
000001|20
000002|30
000002|15
想要得到的结果是将用户名,帐号和金额在同一行打印出来,如下:
张三|000001|10
张三|000001|20
李四|000002|30
李四|000002|15
执行如下代码
#awk -F '|' NR==FNR{a[$2]=$0;next}{print a[$1]"|"$2}' account cdr

评论:

当NR = FNR为true时,判断当前正在读取第一个文件帐户,然后使用{a [$ 2] = $ 0; next}循环将帐户文件的每一行存储到数组a中,并使用$ 2的第二个字段作为下标引用.

当NR = FNR为假时,判断当前正在读取第二个文件cdr,然后跳过{a [$ 2] = $ 0; next},然后执行{无条件地为第二个文件cdr的每一行打印a [$ 1]“ |” $ 2},此时变量$ 1是第二个文件的第一个字段,并且在读取第一个文件时,第一个文件$ 2的第二个字段用作数组下标. 因此,您可以在此处使用[$ 1]来引用该数组.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-187437-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...