2、AWK部份内置变量:
FILENAME 当前文件名
FNR当前文件的总共记录数
FS输入的字段分隔符
NF当前记录的字段数目
NR到目前为止,读入的记录数目
OFS输出文件的字段分隔符
ORS输出文件的记录分隔符
RS输入记录的分隔符
3、/ETC/RESOLV.conf文件是SCO的域名解释配置文件,格式:NAMESERVER IP地址,另外,必须在用户
的.PROFILE文件里面加上一句,HOSTRESORDER="local nis bind";export HOSTRESORDER,这句话,是
设置在主机解释域名的搜索顺序,先是本机,然后是NIS,再是DNS。
4、在AWK中,数组的下标可以是数字,也可以是字符串,如,arr[1]或者是arr[sales]。
5、split(string,arr,fs)函数可以把字符串STRING以FS为分隔符分解成为一个个的数组元素,放到ARR中。
6、delete arr [subscript]删除数组ARR[subscript]元素。
7、在AWK中,for( i in arr) statements是一个FOR循环。
8、if (expression) statement1 [else statment2];
9、expression1
while(expression2)
{statement1;expression3}
10、do {statement} while (expression)
11、NEXT是强迫AWK读入下一个记录,进行处理
12、在AWK中,PRINT或者是PRINTF输出表达式中如果有关系比较符号(如大于>),则需要把PRINT或者是
PRINTF用圆括号括起来,如print $0,($2 >; $3)是打印记录,随后是1或者0;但是如果是print $0,$2 >;$3则
是打印整条记录,第二个字段到文件名为$3的文件中去。
13、在AWK中,可以用CLOSE关闭一个文件(CLOSE(filename));关闭一个管道(close(command_line));
14、在AWK中,输入可以用以下几种方式:
< filename
getline
getline <file
getline x <file
command | getline
command | getline x
如果GETLINE正确,则返回1,文件结束返回0,出错返回-1。
15、在AWK中的一些字符处理函数:
gsub(r,s,t)以字符S替换满足正则表达式R的字符串T中R。
index(s,t)在字符串S中查找字符串T第一次出现的位置,没有则返回零。
legnth(s)测字符串S的长度。
match(s,re)在字符串S中查找正则表达式RE的第一次出现的位置,如果有则返回,同时置RSTART为
该数字;如果没有则返回0。
split(string,arr,fs)见前面。
sprintf(format,expression,expression1,...)
sub(r,s,t)以s替换字符串T中的R。
substr(s,p)取字符中S从位置P开始的字符串。
substr(s,p,n)取字符中S从位置P开始的N个字符。
tolower(s)
toupper(s)
在字符处理函数中,如果被处理字符串为空,则缺省值是$0。
16、在AWK中,还可以用system(command_line)运行系统命令。
17、还可以自定义函数:
function name(parameter_list){statements}其中,parameter_list是以逗号分隔的变量组合。在函数
中如果变量少于定义的数字,则少的设为空;多的则被忽略。为了在函数中有返回值,必须在函数中有一
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 程序 AWK 文件 字符 字符串 记录 返回 一个 或者 如果 |
注册
个人空间
