SUBSEP
数组下标分隔符(默认值是 34)。
蓝色为新增加的内置变量。
简单举例:
1.
01.sed 1q /etc/passwd | awk '{ FS = ":"; print $1 }'
打印密码第一行,用冒号分隔符
2.
awk 'END{print FILENAME}' awk.txt
打印文本FILENAME
3. seq 100 | awk 'NR==4,NR==6'
打印4到6行
再介绍几个awk内置的字符串函数,也讲一部分。
length(string):
返回字符串的长度
index(string,serch_string):
返回search_string在字符串中出现的位置
split(string,array,delimiter):
用定界符生成一个字符串列表,并将该列表存入数组
substr(string,array,delimiter):
在字符串中用字符起止便宜量生成子串,并返回该子串
sub(regex,replacement_str,string):
将正则表达式匹配到的第一处内容替换成replacement_str
gsub(regex,replacement_str,string):
和sub()类似。不过该函数会替换正则表达式匹配到的所有内容
match(regex,string):
检查正则表达式是否能够匹配字符串。如果能够匹配,返回非0值;否则,返回0.match()有两个相关的特殊变量,分别是RSTART喝RLENGTH。变量RSTART包含正则表达式所匹配内容的其实位置,而变量RLENGTH包含正则表达式所匹配内容的长度。
举例:
1.$ awk '{ sub(/test/, "mytest"); print }' testfile
在整个记录中匹配,替换只发生在第一次匹配发生的时候
2.$ awk '{ sub(/test/, "mytest"); $1}; print }' testfile
在整个记录的第一个域中进行匹配,替换只发生在第一次匹配发生的时候
3.$ awk '{ print index("test", "mytest") }' testfile
实例返回test在mytest的位置,结果应该是3
4.$ awk '{ print length( "test" ) }'
实例返回test字符串的长度。
awk补充二
这节可能要写的比较粗了,时间太少。
一. 内置函数
注意一种约定俗称语法习惯: [a]代表a可选.
数字函数(Numeric Functions)
|
函数名 |
说明 |
| atan2(y,x) | 返回y/x弧的反正切 |
| cos(x) | 返回x的余弦 |
| exp(x) | 返回x的指数 |
| int(x) | 返回最靠近的整数,风向标指向0 |
| log(x) | 返回x的自然对数 |
| rand() | 返回随机数 |
| sin(x) | 返回x的正弦 |
| sqrt(x) | 返回x的正平方根 |
| srand([x]) | 生成随机数,可以设置起点 |










