awk 使用

awk

awk 是一个行编辑器,可以截取某一行的数据,处理数据,产生格式化报表的语言

列叫字段,行叫记录

awk 认为文件中的每一行就是一个记录

记录和记录的分隔符为\n换行符,
字段和字段的分隔符为一个空格或者多个空格 or Tab制表符

awk的工作原理:读取数据,将每一行数据视为一条记录record,每条记录以字段分隔符分成若干个字段,然后输出各个字段的值

awk语法:awk [options][BEGIN]{program}[END][file]

字段提取:提取一个文本中的一列数据并打印输出\

$0 表示整行文本
$1 表示文本行中的第一列即第一个数据字段
$n
$NF 表示文本行中的最后一个数据字段
awk '{print $0}' file

指定行号: NR==3
如果字段间不是空相隔的:

awk -F ":" 'NR==1{print $1 $2}' /etc/passwd
# root 0 root
awk -F ":" 'NR==3{print $1 '-' $2 '-' $5}' /etc/passwd

head -3 /proc/meminfo | awk 'NR==1{print $2}'  # 查出内存的大小

awk -F: '$1 ~ "ro"{print $0}' /etc/passwd # ~ 模糊匹配,!~模糊匹配取反

awk 环境变量

变量 描述
FIELDWIDTHS 以空格分隔的数字列表,用空格定义每一个数据字段的精准宽度
FS 输入字段分隔符号
OFS 输出字段分隔符号
RS 输入记录分隔符号
ORS 输出记录分隔符号
awk 'BEGIN{FS=":";OFS="--"}{print $1 $3}' /etc/passwd

awk 格式化输出

posted @ 2020-09-18 00:03  pigeast  阅读(221)  评论(0)    收藏  举报