本帖最后由 阿勒泰 于 2022-9-20 09:45 编辑
作用文本和数据进行处理的编程语言 语法awk '条件1 {动作1} 条件2 {动作2} ..' 文件名 参数-F 指定输入时用到的字段分隔符 -v 自定义变量 -f 从脚本中读取awk命令 -m 对val值设置内在限制 内置变量ARGC 命令行参数个数 ARGV 命令行参数排列 ENVIRON 支持队列中系统环境变量的使用 FILENAME awk浏览的文件名 FNR 浏览文件的记录数 FS 设置输入域分隔符,等价于命令行 -F选项 NF 浏览记录的域的个数 NR 已读的记录数 OFS 输出域分隔符 ORS 输出记录分隔符 RS 控制记录分隔符 案例显示第1和第3列的内容 df -h | awk '{print $1 "\t" $3}'
指定冒号为分隔符,显示第1和第3列的内容 awk -F : '{print $1 "\t" $3}' /etc/passwd
指定冒号为分隔符,显示系统中所有UID号码大于500的用户信息(第3列) awk -F : '$3>=500' /etc/passwd
搜索/etc/passwd有sangfor关键字的所有行 awk -F: '/sangfor/' /etc/passwd
搜索/etc/passwd有sangfor关键字的所有行, 并显示对应的shell awk -F: '/sangfor/{print $7}' /etc/passwd
BEGIN与END的使用 head /etc/passwd | awk -F : 'BEGIN{print " name\tuid"}{print $1 "\t" $3}END{print " from file /etc/passwd"}' |