功能:文本处理工具。命令格式awkOptions'Program-Text'InputFile1InputFile2...对输入文件InputFile1InputFile2...执行给定程序Program-Text...常用选项-Fsep:自定义字段分隔符为sep.-fScriptFile:读取awkScriptFile文件中的脚本。默认记录分隔符是换行符。您可以通过内置变量RS自定义记录分隔符。RS的值可以是单个字符,也可以是正则表达式。如果RS设置为空字符串,awk会在一个空行上拆分记录,以换行符作为字段分隔符。字段awk会将每条记录拆分为字段。默认的字段分隔符是任意空白。可以通过-F选项或FS内置变量自定义字段分隔符。FS的值可以是单个字符或正则表达式。如果FIELDWIDTHS变量设置为一系列由空格分隔的数字,则每个字段将具有相应的字符数。FS此时被忽略。如果FPAT变量设置为正则表达式,则每个字段将是匹配正则表达式的内容。FPAT的优先级最低。$0代表整条记录,$1代表记录中的第1个字段,$2代表第2个字段,$11代表第11个字段...($仅用于引用字段,使用变量时,直接使用变量名即可)的NF变量的值是当前记录中的字段数。Program-Text模式是:pattern{action1;动作2;...}如果模式匹配,将执行指定的操作。模式可以省略,给定的动作将对每条记录执行。该模式可以选择取值如下:BEGIN:在读取输入之前执行。END:在处理完所有输入之后执行。BEGINFILE:在读取每个输入文件之前执行。ENDFILE:在处理完每个文件之后执行。/正则表达式/:只要记录匹配给定的正则表达式就执行。该模式还支持逻辑操作:pattern&&patternpattern||pattern!patternpattern1,pattern2:从第一个pattern匹配的地方开始,到第二个pattern匹配的地方结束,包括开头和结尾。$n~/pattern/:只要第n个字段匹配指定执行模式。$n!~/pattern/:只要第n个字段不匹配指定的模式就执行。示例[ming@localhosttest]$cat/etc/passwd|head-3root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin[ming@localhost测试]$awk-F:'{print$1}'/etc/passwd|head-3rootbindaemon[ming@localhosttest]$catscript.awkBEGIN{print"StartProcessing..."}BEGINFILE{printf"StartProcessing%s...\n",FILENAME}{print$1}ENDFILE{printf"FinishProcessing%s!\n",FILENAME}END{print"FinishProcessing!"}[ming@localhosttest]$catdata1.txt1234567891011abcdefghijk[ming@localhosttest]$catdata2.txt1234567891011abcdefghijk[ming@localhosttest]$awk-fscript.awkdata1.txtdata2.txt开始处理...Start处理data1.txt...1aFinish处理data1.txt!开始处理data2.txt...1a完成处理data2.txt!完成处理!注意:模式必须与{在同一行。使用正则表达式:[ming@localhosttest]$awk'/[a-z]/{print$1}'data1.txta[ming@localhosttest]$awk'!/[a-z]/{print$1}'data1.txt1送运算:[ming@localhosttest]$catdata.txt1234567891011abcdefghijk10a20b30c[ming@localhosttest]$awk'$1~/[0-9]/&&$2!~/[0-9]/{print$1}'data.txt10
