21 - awk基础语法

2022-04-01  本文已影响0人  舍是境界

awk概述

cat test.txt
hello the world
welcom to beijing

awk '{print $1,$3}' test.txt
hello world
welcom beijing

awk '{print $1}' test.txt
hello
welcom

 awk '{print $1,$2}' test.txt
hello the
welcom to
awk -F: '{print $1,$2}' /etc/passwd
root x
bin x
daemon x

awk内置变量

变量 说明
FS 保存或设置字段分隔符,例如FS=":",与-F功能一样
$n 指定分隔的第n个字段,如1、3分别表示第1、3列
$0 当前读入的整行文本内容
NF 记录当前处理行的字段个数(列数)
NR 记录当前已读入行的数量(行数)
awk -F: '{print NF}' /etc/passwd
7
7
...

 awk '{print NF}' test.txt
3
3
0

awk -F: '{print NR,NF}' /etc/passwd
1 7
2 7
3 7
4 7
5 7
6 7
7 7
8 7
···

awk -F: '{print "用户名:",$1,"解释器:", $7}' /etc/passwd
用户名: root 解释器: /bin/bash
用户名: bin 解释器: /sbin/nologin
用户名: daemon 解释器: /sbin/nologin
用户名: adm 解释器: /sbin/nologin

awk过滤的时机

 awk 'BEGIN {a=34;print a+12}'
46

awk 'BEGIN{x=0}/\<bash$/{x++}END{print x}' /etc/passwd
2

awk -F: 'BEGIN {print NR} END{print NR}' /etc/passwd
0
19

小结

上一篇 下一篇

猜你喜欢

热点阅读