网站建设中数据库的维护论文,建设网站的软件下载,网站免费源码,商业网站开发简介
awk是行处理器: 相比较屏幕处理的优点#xff0c;在处理庞大文件时不会出现内存溢出或是处理缓慢的问题#xff0c;通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理#xff0c;然后输出 1#xff09;awk命令会逐行读取文件的内容进行处理 2#xff09;a…简介
awk是行处理器: 相比较屏幕处理的优点在处理庞大文件时不会出现内存溢出或是处理缓慢的问题通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理然后输出 1awk命令会逐行读取文件的内容进行处理 2awk以’’为分隔符将第1行数据格式化为7段每段数据存入$1--$7变量中。$0存储这1行数据 3一行处理完成继续处理下一行直到此文件读取结束 awk常见用法 awk 选项 模式或条件 { 编辑指令 } 文件1 文件2 … awk -f 脚本文件 文件1 文件2 … 特殊的内建变量 $0 表示整个当前行 $1 每行第一个字段 NF 字段数量变量 NR 每行的记录号多文件记录递增 FNR 与NR类似不过多文件记录不递增每个文件都从1开始 \t 制表符 \n 换行符 FS BEGIN时定义分隔符 RS 输入的记录分隔符 默认为换行符(即文本是按一行一行输入) ~ 匹配与相比不是精确比较 !~ 不匹配不精确比较 等于必须全部相等精确比较 ! 不等于精确比较 逻辑与 || 逻辑或 匹配时表示1个或1个以上 /[0-9][0-9]/ 两个或两个以上数字 /[0-9][0-9]*/ 一个或一个以上数字 FILENAME 文件名 OFS 输出字段分隔符 默认也是空格可以改为制表符等 ORS 输出的记录分隔符默认为换行符,即处理结果也是一行一行输出到屏幕 -F[:#/] 定义三个分隔符 用法示例输出 awk {print} test.txt 简单的输入全部 第1,3字段 awk {print $1,$3} test.txt 输出奇数行%2求模运算余数为1是奇数0为偶数 awk (NR%2)1{print} test.txt 输出偶数行 awk (NR%2)0{print} test.txt 输出以root开头的行 awk /^root/{print} /etc/passwd 输出以……结尾的行 awk /nologin$/{print} /etc/passwd 统计以/bin/bash结尾的行 grep -c /bin/bash$ awk BEGIN {x0} ; /\/bin\/bash$/{x};END {print x} /etc/passwd 统计以空行分割的文本段落数 awk BEGIN{RS};END{print NR} /etc/sysctl.conf 按字段输出文本 输出每行中以空格或制表位分割的第3个字段 awk {print $3} test.txt 密码为空的行 awk -F : $2{print} /etc/shadow 密码为空的行 awk BEGIN {FS:}; $2{print} /etc/shadow 输出以‘’分割第7字段包含/bash的行的第1个字段 awk -F: $7~/bash{print $1} /etc/passwd 输出第1个字段包含nfs并且包含8个字段的行的第1,2字段 awk ($1~nfs)(NF8){print $1,$2} /etc/services 输出第7个字段不是/bin/bsh也不是/sbin/nologin的行 awk -F: ($7!/bin/bsh)($7!/sbin/nologin){print} /etc/passwd 通过管道、双引号调用Shell命令 调用wc -l 命令统计使用bash的用户个数 awk -F: /bash$/{print | wc -l} /etc/passwd 等同于下列命令 grep -c bash$ /etc/passwd 调用w命令统计在线用户数 awk BEGIN {while (w |getline) n; {print n-2}} 调用hostname并输出当前主机名 awk BEGIN { hostname |getline ; print $0}