AIX下awk语言的内置字符串函数

本文深入探讨了AIX操作系统下awk语言的内置字符串函数,包括常用的字符串操作如分割、查找、替换等,帮助读者掌握在AIX环境中使用awk进行文本处理的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

awk语言内置的字符串函数
——————————————————————————————————————————————————————————————
gsub(r,s)			在整个$0中用s替代r
gsub(r,s,t)		在整个t中用s替代r
index(s,t)			返回s中字符串t的第一位置
length(s)			返回s的长度
match(s,r)		测试s是否包含匹配r的字符串
split(s,a,fs)		返回fs上将s分成序列a
sprint(fmt,exp)		返回经fmt格式化后的exp
sub(r,s)			用$0中最左边最长的子串替代s
substr(s,p)		返回字符串s中从p开始的后缀部分
substr(s,p,n)		返回字符串s中从p开始长度为n的后缀部分
——————————————————————————————————————————————————————————————

1.gsub函数
将包含4842的行中的4842替换为4899:
awk 'gsub(/4842/,4899) {print $0}' grade.txt
J.Troll    07/99  4899   Brown-3  12   26   26
awk '{if($3~/4842/) print $0}' grade.txt[or awk '$0 ~/4842/ ' grade.txt]
J.Troll    07/99  4842   Brown-3  12   26   26

2.index函数
找出ny首次出现的位置:
awk 'END {print index("Bunny","ny")}' grade.txt
4
在第一个域中包含Bunny中找出ny首次出现的位置,并打印此行:
awk '$1~/Bunny/ {print index($1,"ny") ":" $0}' grade.txt
6:P.Bunny    02/99  48     Yello    12   35   28

3.length函数

awk 'if(($1~/Tran/) ||  (length($1) > 7)) {print $0}' grade.txt
报错:
### 关于 `awk` 中字符串函数的使用 #### 常见字符串函数及其功能 `awk` 提供了一系列用于处理字符串的强大内置函数。这些函数能够帮助用户执行诸如截取子串、替换字符以及计算长度等常见操作。 - **length(string)**: 返回给定字符串长度[^1]。 ```bash echo "hello world" | awk '{print length($0)}' ``` - **substr(string, start [, length])**: 获取从指定位置开始的一个子串,可选参数表示要获取的最大字符数。 ```bash echo "hello world" | awk '{print substr($0,7,5)}' # 输出world ``` - **index(bigstring, littestring)**: 查找一个小字符串在一个大字符串中的首次出现的位置;如果找不到,则返回零。 ```bash echo "hello world" | awk '{print index($0,"world")}' # 输出7 ``` - **match(string, regexp)**: 测试正则表达式是否匹配整个字符串,并设置RSTART和RLENGTH两个特殊变量来指示匹配部分的信息。 ```bash echo "hello world" | awk 'BEGIN{FS=" ";}{if(match($2,/or/)){print RSTART,RLENGTH}}' # 输出4 2 ``` - **split(string, array, fieldsep)**: 将一个字符串按照分隔符分割成多个字段存入数组中,第三个参数为可选项,默认为空白字符作为分隔符。 ```bash echo "apple orange banana" | awk '{n=split($0,a);for(i=1;i<=n;i++)print a[i]}' ``` - **tolower(string), toupper(string)**: 把所有的字母转换成小写或大写的版本。 ```bash echo "Hello World" | awk '{print tolower($0)}' # hello world echo "Hello World" | awk '{print toupper($0)}' # HELLO WORLD ``` 以上就是一些常用的 `awk` 字符串处理函数的例子,通过它们可以在脚本编写过程中更加灵活地操控文本数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值