awk的内置函数
sub函数用于在记录中查找能够匹配正则表达式的最长且最靠左的子串,然后用替换串取代找到的子串。
sub函数只对每行中出现的第一个匹配字符串进行替换。用于替换多次匹配的得用gsub函数。格式:sub(正则表达式,替换串,目标串)、sub(正则表达式,替换串),gsub格式一样的。
gsub函数对字符串中的正则表达式进行全局替换,即替换所有在记录($0)中出现的正则表达式。
index函数返回子串在字符串中第一次出现的位置。偏移量从位置1开始计算。格式:index(字符串,子串)
length函数返回字符串中字符的个数。如果未指定参数,则length函数返回记录中的字符个数。格式:length(字符串)、length
substr函数返回从字符串指定位置开始的一个子串。格式:substr(字符串,起始位置)、substr(字符串,起始位置,子串长度)
match函数返回正则表达式在字符串中出现的位置,如果未出现则返回0。格式:match(字符串,正则表达式)
match函数把内置变量RSTART设为子串在字符串中的起始位置,RLENGTH则设为子串的长度。这些变量可以被substr函数用来提取相应模式的子串,不过只可用于nawk。
split函数使用由第三个参数指定的字段分隔符,把字符串拆分成一个数组。如果没有提供第三个参数,awk将把FS的当前值作为字段分隔符。格式:split(字符串,数组,字段分隔符)、split(字符串,数组)
sprintf函数返回一个指定格式的表达式,可以在sprintf函数中使用printf函数的格式规范。格式:variable = sprintf("含有格式说明的字符串",表达式1,表达式2,...,表达式n)
/[A-Z]+$/ 这个正则表达式的意思是查找在字符串尾部连续出现的大写字母。
%-15s 表示左对齐、长度为15的字符串;
%6.2f 表示右对齐、长度为6个字符的浮点数;
算术函数
int函数将舍去小数点后的所有数字生成一个整数,不执行四舍五入操作;
rand函数是个随机数发生器,生成一个大于或等于0、小于1的伪随机浮点数。
可以用srand函数为rand函数的种子设一个新值,否则,每次调用rand都只会重复出现同一数列。
srand函数如果未指定参数,srand函数会根据当前时刻为rand函数生成一个种子。srand(x)则把x设成种子。通常,程序应该在运行过程中不断地改变x的值。
用户自定义函数
格式:
函数名(参数,参数,参数,....){
语句
return 表达式(注:return语句和表达式都是可选项)
}
脚本中凡是可以出现模式操作规则的位置都可以放置用户自定义的函数。
阅读(1207) | 评论(0) | 转发(0) |