awk用法:awk'pattern{action}'
变量名 含义
ARGC 命令行变元个数
ARGV 命令行变元数组
FILENAME 当前输入文件名
FNR 当前文件中的记录号
FS 输入域分隔符,默认为一个空格
RS 输入记录分隔符
NF 当前记录里域个数
NR 到目前为止记录数
OFS 输出域分隔符
ORS 输出记录分隔符
1、awk'/101/'file显示文件 file 中包含 101 的匹配行。
awk'/101/,/105/'file
awk'$1==5'file
awk'$1=="CT"'file注意必须带双引号
awk'$1*$2>100'file
awk'$2>5&&$2<=15'file
2、awk'{printNR,NF,$1,$NF,}'file显示文件 file 的当前记录号、域数和每一行的第一个
和最后一个域。
awk'/101/{print$1,$2+10}'file显示文件 file 的匹配行的第一、二个域加 10。
awk'/101/{print$1$2}'file
awk'/101/{print$1$2}'file显示文件 file 的匹配行的第一、二个域,但显示时域中间
没有分隔符。
3、df|awk'$4>1000000'通过管道符获得输入,如:显示第 4 个域满足条件的行。
4、awk-F"|"'{print$1}'file按照新的分隔符“|”进行操作。
awk'BEGIN{FS="[: |]"}
{print$1,$2,$3}' file通过设置输入分隔符(FS="[: |]")修改输入分隔符。
Sep="|"
awk-F$Sep'{print$1}'file按照环境变量 Sep 的值做为分隔符。```
awk-F'[: |]''{print$1}'file按 照正则表 达式 的值 做为 分隔 符, 这里 代表 空格 、 : 、
TAB、|同时做为分隔符。
awk-F'[][]''{print$1}'file按照正则表达式的值做为分隔符,这里代表[、]
5、awk-fawkfile file通过文件 awkfile 的内容依次进行控制。
catawkfile
/101/{print"'Hello!'"}--遇到匹配行以后打印`'Hello!'.' 代表单引号。
{print$1,$2}--因为没有模式控制,打印每一行的前两个域。
6、awk'$1~/101/{print$1}'file显示文件中第一个域匹配 101 的行(记录)。
7、awk'BEGIN{OFS="%"}
{print$1,$2}'file通过设置输出分隔符(OFS="%")修改输出格式。