shell文本过滤编程(八):awk之内置函数

【版权声明:转载请保留出处:blog.csdn.net/gentleliu。Mail:shallnew at 163 dot com】

这一节来见识一下a w k许多强大的字符串函数及其使用方法。

1、 sub 和 gsub函数:

用法:sub( Ere, Repl, [ str ] )

gsub( Ere, Repl, [ str ] )

在第三个参数给出字符串中查找满足Ere 参数指定的扩展正则表达式的字符串,并使用第二个参数替换之。如果未指定 In 参数,缺省值是整个记录($0 记录变量)。Sub函数替换第一个符合模式的字符串,gsub会替换所有符合模式的字符串。

# awk 'BEGIN{buf="Hello,awk! there is awktutorial!";sub(/awk/, "world", buf); print buf}'
Hello,world! there is awk tutorial!
# echo "Hello,awk! there is awk tutorial" | awk'{sub(/awk/, "world"); print $0}'
Hello,world! there is awk tutorial
# awk 'BEGIN{buf="Hello,awk! there is awktutorial!";gsub(/awk/, "world", buf); print buf}'
Hello,world! there is world tutorial!
# echo "Hello,awk! there is awk tutorial" | awk'{gsub(/awk/, "world"); print $0}'
Hello,world! there is world tutorial
#

2、 index函数

index( String1, String2 );

在第一个参数string1中查找字符串string2,返回首次出现的位置。

# echo "Hello,awk! there is awk tutorial" | awk '{printindex($0, "awk")}'
7
#

3、 length函数,blength函数

length[(String)];返回参数指定字符串的长度,以字符为单位,如果未给出 String 参数,则返回整个记录的长度($0记录变量)。

# echo"Hello,awk! there is awk tutorial" | awk '{print length()}'
32
#

4、 substr函数

substr( String,M, [ N ] );返回从字符串string从第M位置开始,之后的N个字符的字符串。M 参数指定为将 String 参数中的第一个字符作为编号 1。如果未指定 N 参数,则子串的长度将是 M 参数指定的位置到 String 参数的末尾的长度。

# echo"Hello,awk! there is awk tutorial" | awk '{print substr($0, 5)}'
o,awk! there isawk tutorial
# echo"Hello,awk! there is awk tutorial" | awk '{print substr($0, 5, 6)}'
o,awk!
#

5、 spilt函数

split( String,A, [Ere] );将 String 参数指定的参数分割为数组元素 A[1], A[2], . . ., A[n],并返回 n 变量的值。此分隔可以通过 Ere 参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere 参数)。除非上下文指明特定的元素还应具有一个数字值,否则 A 数组中的元素用字符串值来创建。

# echo"Hello,awk! there is awk tutorial" | awk '{split($0, arr); for (i inarr){print i,arr[i]}}'
4 awk
5 tutorial
1 Hello,awk!
2 there
3 is

awk for …in 循环,是一个无序的循环。并不是从数组下标1…n ,因此使用时候需要注意。

6、 system函数

system(cmd);执行cmd 参数指定的命令,并返回退出状态。

# awk 'BEGIN{system("echo $HOME")}'
/root

原来awk里面还可以调用shell 命令,高大上啊。

Awk系列文章就讲这么多,awk在文本处理方面相当出色,功能也很强大,掌握awk本系列已经可以做很多事情了,下一节将开始讲述sed命令。

时间: 2024-12-08 03:08:41

shell文本过滤编程(八):awk之内置函数的相关文章

linux awk 内置函数详细介绍(实例)

这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x ) 返回 y/x 的反正切. cos( x ) 返回 x 的余弦:x 是弧度. sin( x ) 返回 x 的正弦:x 是弧度. exp( x ) 返回 x 幂函数. log( x ) 返回 x 的自然对数. sqrt( x ) 返回 x 平方根. int( x ) 返回 x 的截断至整数的

linux awk 内置函数实例

awk内置函数,主要分4种:算数函数.字符串函数.时间函数.一般函数 一.算术函数 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x ) 返回 y/x 的反正切. cos( x ) 返回 x 的余弦:x 是弧度. sin( x ) 返回 x 的正弦:x 是弧度. exp( x ) 返回 x 幂函数. log( x ) 返回 x 的自然对数. sqrt( x ) 返回 x 平方根. int( x ) 返回 x 的截断至整数的值. rand( ) 返回

【python】函数之内置函数

Python基础 内置函数 今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是整数或浮点数等. print(abs(-18)) print(abs(0.15)) result: 18 0.15 2.all(iterable) 如果iterable的所有元素不为0.''.False或者iterable为空,all(iterable)返回True,否则返回False. print

what's the python之内置函数

what's the 内置函数? 内置函数,内置函数就是python本身定义好的,我们直接拿来就可以用的函数.(python中一共有68中内置函数.)     Built-in Functions     abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() static

python基础之内置函数与匿名函数

python基础之内置函数与匿名函数 内置函数68个如下图 重点的关注的内置函数len,sorted,enumerate,all,any,zip,filter,map,reversed,slice len(o):参数为O,返回数据类型的长度sorted():      sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list iterable:是可迭代类型; cmp:用于比较的函数,比较什么由key决定; ke

shell文本过滤编程(四):awk内置变量及一般变量

[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] awk有许多内置变量用来设置环境信息.这些变量可以被改变.下面是awk内置变量: ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME  a w k浏览的文件名 FNR 浏览文件的记录数 FS 设置输入域分隔符,等价于命令行 - F选项 NF 浏览记录的域个数 NR 已读的记录数 OFS 输出域分隔符

shell文本过滤编程(二):awk之基础

[版权声明:转载请保留出处:blog.csdn.net/gentleliu.Mail:shallnew at 163 dot com] 上一节说到了grep命令,grep命令主要用在获取符合规则的行信息.本节要讲的awk在对某文件或字符串中获取指定文本域有较强大的功能. a w k语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息. a w k抽取信息后,才能进行其他文本操作.完整的 a w k脚本通常用来格式化文本文件中的信息. 在命令行上调用awk命令式最常用的使用awk的方式:

Python3之内置函数

内置函数 内置函数 一.内置函数定义及总数 python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数. Built-in Functions abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii() enumerate() input() oct() staticmethod(

Python基础之内置函数和递归

本文和大家分享的主要是python中内置函数和递归相关内容,一起来看看吧,希望对大家学习python有所帮助. 一.内置函数 下面简单介绍几个: 1.abs() 求绝对值 2.all() 如果 iterable 的所有元素都为真(或者如果可迭代为空),则返回  True 3.any() 如果 iterable 的任何元素为真,则返回  True .如果iterable为空,则返回  False 4.callable() 如果  object 参数出现可调,则返回  True ,否则返回  Fal