三剑客-awk

awk文本与数据处理
输出:
printf格式化输出,自动换行,和\n一起用。
print打印内容,会自动换行。
参数:-F 指定分隔符 ,不指定是空格。
awk -F ‘:’ ‘{print $1}’ /etc/passwd
三剑客-awk_第1张图片
awk -F ‘:’ ‘{print $1,$2}’ /etc/passwd 打印的两列有空格或者 cat /etc/passwd | awk -F ‘:’ ‘{print $1,$3}’

三剑客-awk_第2张图片
三剑客-awk_第3张图片

awk -F ‘:’ ‘{print $1"\t" $2}’ /etc/passwd
三剑客-awk_第4张图片
df -h |grep ‘sda1’ | awk ‘{print “sda1的使用率:”$5}’
三剑客-awk_第5张图片

awk的内置函数
$0:表示整个当前行
$1:表示每行第一个字段
$n表示每行第n个字段
NR每行的行号
NF字段数量(列数),如果是NF就表示最后一列

cat /etc/passwd | awk -F ‘:’ ‘{print NR,NF,$NF}’/etc/passwd
三剑客-awk_第6张图片
逻辑判断表达式:
,!:匹配正则表达式
==,!=,<,>:判断逻辑表达式
awk -F ‘:’ ‘NR>=1 && NR<=3{print $1}’ /etc/passwd
三剑客-awk_第7张图片
awk -F ‘:’ ‘NR>=1 && NR<=3{print $1,$3}’ /etc/passwd
三剑客-awk_第8张图片

打印以s开头的:
awk -F ‘:’ ’ $1~/^s.*/{print $1}’ /etc/passwd

三剑客-awk_第9张图片
打印不以s开头的:
awk -F ‘:’ ’ $1!~/^s.*/{print $1}’ /etc/passwd
root

三剑客-awk_第10张图片
打印第三列大于900的行号,第一列,第三列
awk -F ‘:’ ‘$3>900 {print NR,$1,$3}’ /etc/passwd

三剑客-awk_第11张图片
或awk -F ‘:’ ‘{if($3>900)print NR,$1,$3}’ /etc/passwd
三剑客-awk_第12张图片
awk ‘BEGIN{FS=“:”} {print $1,$3}’ /etc/passwd | head -n3
三剑客-awk_第13张图片

你可能感兴趣的:(shell,linux)