awk字符串函数(一)

sub和gsub函数 sub函数用于在记录中查找能够匹配正则表达式的最长且最靠左的子串,然后用替换串取代找到的子串。如果指定了目标串,就在目标串中查找能够匹配正则表达式的最长且最靠左的子串,并将找到的子串替换为替换串。若未指定目标串,则在整个记录中查找。
sub函数格式

sub (正则表达式 ,替换串 );
sub (正则表达式 ,替换串 ,目标串 );

范例

$ awk  '{sub(/Mac/,"MacIntosh");print}' filename;
$ awk  '{sub(/Mac/,"MacIntosh",$1);print}' filename

说明:
1.在记录($0)中第一次匹配到正则表达式Mac时, Mac被替换为字符串MacIntosh。sub函数只对每行中出现的第一个匹配字符串进行替换(请参见用于替换多次匹配的gsub函数)。
2. 在记录的第1个字段($1)中第一次匹配到正则表达式Mac时,Mac被替换为字符串MacIntosh。sub函数只对目标串中出现的第一个匹配字符串进行替换。gsub函数则对字符串中的正则表达式进行全局替换,即替换所有在记录($0)中出现的正则表达式。
gsub函数格式

gsub (正则表达式 ,替换串 );
gsub (正则表达式 ,替换串 ,目标串 );

范例

$ awk  '{gsub(/CA/,"California");print}' filename
$ awk  '{gsub(/[Tt]om/,"Thomas",$1);print}' filename

说明:
1.记录($0)中找到的每个正则表达式CA都被替换为California。
2.在第一个字段中找到的每个正则表达式Tom或tom都被替换为Thomas。


index函数 index函数返回子串在字符串中第一次出现的位置。偏移量从位置1开始计算。
格式

index (字符串 ,子串 )

范例

$ awk  '{print index("hollow","low")}' filename
4

说明:返回的数字是子串low在字符串hollow中第一次出现的位置,偏移量从1开始计算。


length函数 length函数返回字符串中字符的个数。如果未指定参数,则length函数返回记录中的字符个数。
格式

length (字符串 )
length

范例

$ awk  '{print length("hello")}' filename
5

length函数返回字符串hello的字符个数。

参考资料:http://www.linuxawk.com/jiaocheng/298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值