如何在linux中使用awk函数

  介绍

如何在linux中使用awk函数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>一、算术函数:

以下算术函数执行与C语言中名称相同的子例程相同的操作:

<强>函数名 <强>说明量化(y, x)返回y/x的反正切.cos (x)返回x的余弦;x是弧度.sin (x)返回x的正弦;x是弧度. exp (x)返回x幂函数. log (x)返回x的自然对数.sqrt (x)返回x平方根相关性(x)返回x的截断至整数的值.rand()返回任意数字n,其中0 & lt;=n & lt;1.将srand ([Expr])将兰德函数的种子值设置为Expr参数的值,或如果省略Expr参数则使用某天的时间。返回先前的种子值。

代码如下:


举例说明:
[chengmo@centos5 ~]美元awk & # 39;开始{OFMT=? .3f" fs=罪(1);铁=exp (10); fl=日志(10);fi=int(3.1415);打印fs,铁、fl, fi;} & # 39;
0.841 22026.466 2.303 3 & lt;/p>   & lt; p> OFMT设置输出数据格式是保留3位小数& lt;/p>   & lt; p>获得随机数:& lt;/p>   & lt; p> [chengmo@centos5 ~]美元awk & # 39;开始{将srand (); fr=int (100 * rand());打印fr;} & # 39;
78
[chengmo@centos5 ~]美元awk & # 39;开始{将srand (); fr=int (100 * rand());打印fr;} & # 39;

[chengmo@centos5 ~] 31美元awk & # 39;开始{将srand (); fr=int (100 * rand());打印fr;} & # 39;41

<编辑id=" a171c1272 ">二,字符串函数是: <强>函数 <强>说明 gsub(之前,Repl,[在])除了正则表达式所有具体值被替代这点,它和子函数完全一样地执行,.sub(之前,Repl,[在])用Repl参数指定的字符串替换在参数指定的字符串中的由之前参数指定的扩展正则表达式的第一个具体值.sub函数返回替换的数量。出现在Repl参数指定的字符串中的,(和符号)由在参数指定的与之前参数的指定的扩展正则表达式匹配的字符串替换。如果未指定在参数,缺省值是整个记录(0美元记录变量).index (String1 String2相等)在由String1参数指定的字符串(其中有出现String2相等指定的参数)中,返回位置,从1开始编号。如果String2相等参数不在String1参数中出现,则返回0(零). length ((String))返回字符串参数指定的字符串的长度(字符形式)。如果未给出字符串参数,则返回整个记录的长度(0美元记录变量).blength [(String)]返回字符串参数指定的字符串的长度(以字节为单位)。如果未给出字符串参数,则返回整个记录的长度(0美元记录变量).substr(字符串、M [N])返回具有N参数指定的字符数量子串。子串从字符串参数指定的字符串取得,其字符以M参数指定的位置开始。M参数指定为将字符串参数中的第一个字符作为编号1。如果未指定N参数,则子串的长度将是M参数指定的位置到字符串参数的末尾的长度.match字符串(字符串,Ere)在参数指定的字符串(Ere参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从1开始编号,或如果之前参数不出现,则返回0(零).RSTART特殊变量设置为返回值.RLENGTH特殊变量设置为匹配的字符串的长度,或如果未找到任何匹配,则设置为1(负一).split(字符串,[在])将字符串参数指定的参数分割为数组元素[1],[2],…,[N],并返回N变量的值。此分隔可以通过之前参数指定的扩展正则表达式进行,或用当前字段分隔符(FS特殊变量)来进行(如果没有给出之前参数)。除非上下文指明特定的元素还应具有一个数字值,否则一数组中的元素用字符串值来创建.tolower (String)返回字符串参数指定的字符串,字符串中每个大写字符将更改为小写。大写和小写的映射由当前语言环境的LC_CTYPE范畴定义.toupper (String)返回字符串参数指定的字符串,字符串中每个小写字符将更改为大写。大写和小写的映射由当前语言环境的LC_CTYPE范畴定义.sprintf(格式、Expr Expr。)根据格式参数指定的printf子例程格式字符串来格式化Expr参数指定的表达式并返回最后生成的字符串。

之前都可以是正则表达式

gsub,子使用
[chengmo@centos5 ~]美元awk & # 39;开始{信息=?这是一个test2010test !“; gsub([0 - 9] +/,“!“,信息),打印信息}& # 39;,,
这是一个测试。测试!
,
在信息中查找满足正则表达式,/[0 - 9]+/用”“替换,并且替换后的值,赋值给信息未给信息值,默认是$ 0
,
查找字符串(索引使用)
[wangsl@centos5 ~]美元awk & # 39;开始{信息=?这是一个test2010test !“;打印索引(信息,“test") ?“ok":“没有found";} & # 39;,,,

未找的到,返回0
,
正则表达式匹配查找(匹配使用)
[wangsl@centos5 ~]美元awk & # 39;开始{信息=?这是一个test2010test !“;打印匹配(信息,/[0 - 9]+/)?“ok":“没有found";} & # 39;,,,,,,,,,,

如何在linux中使用awk函数