AWK的替换函数

1、sub替换函数

[[email protected] shell]$ cat awkfile
a b c d
b d l o
j a b v l i w
w v l w e r v l
a w v e a f a w
[[email protected] shell]$

[[email protected] shell]$ awk ‘{sub("a","A",$0);print $0}‘ awkfile
A b c d
b d l o
j A b v l i w
w v l w e r v l
A w v e a f a w

[[email protected] shell]$

[[email protected] shell]$ awk ‘{sub("a","A");print $0}‘ awkfile
A b c d
b d l o
j A b v l i w
w v l w e r v l
A w v e a f a w

[[email protected] shell]$

[[email protected] shell]$ awk ‘{sub(/a/,"A");print $0}‘ awkfile A b c d
b d l o
j A b v l i w
w v l w e r v l
A w v e a f a w
[[email protected] shell]$

[[email protected] shell]$ awk ‘{sub(/^a/,"A");print $0}‘ awkfile
A b c d
b d l o
j a b v l i w
w v l w e r v l
A w v e a f a w
[[email protected] shell]$

默认替换第一列匹配到的字符串

语法是:sub(替换前的内容(可以使用正则表达式),替换后的内容,替换范围)

下面来替换第五列的字符串

[[email protected] shell]$ awk ‘{sub("a","A",$5);print $0}‘ awkfile
a b c d
b d l o
j a b v l i w
w v l w e r v l
a w v e A f a w
[[email protected] shell]$

2、gsub替换函数

[[email protected] shell]$ awk ‘{gsub("a","A",$0);print $0}‘ awkfile
A b c d
b d l o
j A b v l i w
w v l w e r v l
A w v e A f A w
[[email protected] shell]$
[[email protected] shell]$ awk ‘{gsub("a","A",$1);print $0}‘ awkfile
A b c d
b d l o
j a b v l i w
w v l w e r v l
A w v e a f a w
[[email protected] shell]$

[[email protected] shell]$ awk ‘{gsub(/a/,"A",$1);print $0}‘ awkfile
A b c d
b d l o
j a b v l i w
w v l w e r v l
A w v e a f a w

[[email protected] shell]$

[[email protected] shell]$ awk ‘{gsub(/^a/,"A");print $0}‘ awkfile
A b c d
b d l o
j a b v l i w
w v l w e r v l
A w v e a f a w
[[email protected] shell]$

看到它们之间的区别没有?

sub是局部替换,也就是替换一行之中第一个匹配到的字符串

gsub是全局替换,所有匹配到的字符串都会替换

下面来点好玩的。

[[email protected] shell]$

[[email protected] shell]$ awk ‘{sub($1,"A");print $0}‘ awkfile
A b c d
A d l o
A a b v l i w
A v l w e r v l
A w v e a f a w
[[email protected] shell]$

这样匹配也是局部的。

[[email protected] shell]$ awk ‘{sub($1,"A",$2);print $0}‘ awkfile
a b c d
b d l o
j a b v l i w
w v l w e r v l
a w v e a f a w
[[email protected] shell]$

这里没有匹配到,因为你选择了在第二列进行替换规则,但是匹配的内容在第一列,这样是匹配不到的,记住喔~~~

[[email protected] shell]$ awk ‘{gsub($1,"A");print $0}‘ awkfile
A b c d
A d l o
A a b v l i w
A v l A e r v l
A w v e A f A w
[[email protected] shell]$ awk ‘{gsub($1,"A",$2);print $0}‘ awkfile
a b c d
b d l o
j a b v l i w
w v l w e r v l
a w v e a f a w
[[email protected] shell]$

当然了,awk还有很多玩法,自己去摸索去吧,我实力也就这点了。

时间: 2024-10-25 11:24:58

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( ) 返回

awk下 gsub函数用法

(2012-03-27 01:37:28) 标签: awk gsub linux 函数 it 分类: linux gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s,t) 一.遇到的问题: 问题:echo "a b c 2011-11-22 a:d" | awk '$4=gsub(/-/,"",$4)'为啥 输出后 2

awk中split函数的用法

The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep. time=12:34:56 echo $time | awk '{split($0,a,":" ); print a[1]}' 12   echo $time | awk '{split($0,a,":" ); print a[3]}' 34   echo $time | awk

asp 正则替换函数

Function RegExpTest(patrn,str1,strng) Dim regEx',str1 ' 建立变量 'str1 = "The quick brown fox jumped over the lazy dog."Set regEx = New RegExp ' 建立正则表达式 regEx.Pattern = patrn ' 设置模式 regEx.IgnoreCase = True ' 设置是否区分大小写 'RegExpTest = regEx.test(strng)

php中替换函数主要用的几个函数strtr(),str_repalce()。

php中替换函数主要有strtr(),str_repalce()这两个函数,今天介绍下他们的区别和用法, 先来看看这个php字符串替换函数 strtr()的两种用法: strtr(string,from,to) 或者strtr(string,array) 首先针对strtr函数第一种方式: 我们看看下面的举例: <?phpecho strtr("I Love you","Lo","lO");?> 得到的结果是: I lOve yOu

js中字符替换函数String.replace()使用技巧

String.replace( ) 简介 语法: var strings = string.replace(regexp, replacement) regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作:如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作. replacement :您要替换成的字符. 返回值是执行替换操作后的字符串. 11 String.replac

php字符串与字符替换函数

在php教程替换字符效率最高也是最简单字符替换函数str_replace($arr1,$arr2,$str)实例一 str_replace("iwind", "kiki", "i love iwind, iwind said");将输出 "i love kiki, kiki said" 结果 即将 原字符串中的所有"iwind"都替换成了"kiki".str_replace是大小写敏感的

strtr和str_replace字符替换函数

(一)strtr是字符替换函数 (1)单个字符替换: <?php echo strtr("abba", "ab", "10"),"\n"; echo strtr("baab", "ab", "01"),"\n"; ?> 输出结果为: (2)字符串对应替换: <?php $trans = array("ab" =