如何正确的使用awk正则表达式

  介绍

这篇文章给大家介绍如何正确的使用awk正则表达式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强> 1,模糊匹配:

awk “{如果(97美元~//),print  $ 0} & # 39;, data.f:如果第三项中含有“97”则打印该行   awk ,“{如果(4美元! ~/ufcx/), print  $ 0} & # 39;,数据。f:如果第三项中不含ufcx有则打印

<强> 2,精确匹配:

awk “{如果(66美元==),print  $ 0} & # 39;, data.f:如果第五项是66则打印   awk ,“{如果(5美元!=66)print  $ 0} & # 39;, data.f :,如果第五项不是66则打印   awk ,“{如果(1美元的在5美元),print  $ 0} & # 39;,数据。f:如果第一项大于第五项则打印

<强> 3,大小写匹配:

awk “{如果(/[Ss] ept), print  $ 0} & # 39;, data.f:符合,则打印一行。   awk ,“[Ss] ept/, {print  $ 2} & # 39;,数据。f:符合,则打印第二字段

<强> 4,任意匹配:

awk “{如果(2美元,~/^生产/),print  $ 0} & # 39;, data.f:第二字段中,第二个字符为e,输出   awk ,“{如果(4美元,~/(有限合伙人| fcx)/), print  $ 0} & # 39;, data.f:第四个字段含有有限合伙人或fcx则输出

<强> 5,,,,| |:

代码如下:

awk “{如果(3美元,1993 ~//,,,,2美元==9月),print  $ 0} & # 39;, data.f:两边都真则输出   awk ,“{如果(3美元,~/a9/, | |, 2美元==9月),print  $ 0} & # 39;,数据。f:一边为真则输出

<强> 6,变量定义:

awk '{日期=2美元;价格=5美元;如果(日期~/[Ss] ept)打印“价格”价格}& # 39;数据。f:变量定义,满足日期是9月或者9月的价格将输出。

<强> 7,修改数值(源文件数值不变)

awk “{基线=42;,如果(1美元在基线),5=5 + 100;美元,print  $ 0} & # 39;, data.f:三行程序,以”;“分割

如果修改的是文本域,就要添加”“”“。例:如awk的{如果美元($ 2==翱赡堋?2=皌t”;打印$ 0}& # 39;数据。f

上边都是显示所有数据,awk的{如果(2美元==翱赡堋?{2美元=皌t”;打印$ 0}}& # 39;数据。f这个只显示修改数据,仔细看看,其实语法和c一样,只是最外边添加了一个{}符号。

<强> 8日创建新域:(源文件数值不变)

awk “{如果(5美元在1美元){8美元=5 - 1美元;print  $ 1、$ 8}} & # 39;, data.f:   或者awk ,“{如果(5美元在1美元){diff=5 - 1美元;print  1美元,diff}} & # 39;,数据。f

<强> 9数据统计:

awk '{(总+=$ 5)}{打印总}结束& # 39;data.f:“{(总+=$ 5)}”和“{打印总}”代表两个不同的代码段,如果没有结束每次的累积结果都会输出,最终可以理解为代码段落的标志,这样只输出最终结果即{打印总}只执行一次。

<强> 10,统计文件大小:

代码如下:


ls - l | awk的{如果(/^ ^ [d]/)总额=+ 5美元}{打印”总KB:“总}结束& # 39;:/^ ^ [d]/行首匹配可以不写域值1美元

<强> 11、awk内置变量:

命令行参数个数命令行参数个数

ARGV命令行参数排列

环境支持队列中系统环境变量的使用

文件名awk浏览的文件名

FNR浏览文件的记录数

FS设置输入域分隔符,等价于命令行- F选项

NF浏览记录的域个数

NR已读的记录数

OFS输出域分隔符

口服补液盐输出记录分隔符

RS控制记录分隔符

<强> 12,awk内置字符串处理函数

gsub (r, s)在整个$ 0中用年代替代r

gsub (r、s、t)在整个t中用年代替代r

指数(s, t)返回年代中字符串t的第一位置

长度(s)返回年代长度

匹配(s, r)测试年代是否包含匹配r的字符串,返回位置

分裂(年代,FS)在FS上将年代分成序列一个

sprint (F m t, exp)返回经F m t格式化后的经验值

子(r, s, 0美元)$ 0中s替换第一次r出现的位置

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

substr (s、p、n)返回字符串年代中从p开始长度为n的后缀部分

<强> 13,awk的gsub (/6 \。/78) {print $ 0} & # 39;data.f:将所有“6。“换成78,并输出

代码如下:


awk的{如果(2美元==9月){子(美元/3/,“9”,0);打印$ 0}}& # 39;数据。f:只替换第一个出现的

awk的开始{打印指数(“你好”、“lo”)} & # 39;:输出的值为4

如何正确的使用awk正则表达式