1 cat /etc/passwd | awk -F ":" '{print $1}'
这里 -F “:” 是指以:来区分第几列,在/etc/passwd文件中,是以:区分的 ‘{print $1}‘是指执行的操作
root
bin
daemon
adm
如果这里不加-F ":" 则会将一整行都打印出来。
2 awk -F":"'/root/ {print $0; print $1 " " $7}' /etc/passwd
打印出所有包含root的行,并在第二回打印出用户名和shell类型。$0是打印整行。而不是单独打印一列。多个打印语句在一个{}里,要以分号隔开。
root:x:0:0:root:/root:/bin/bash
root /bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
operator /sbin/nologin
3 awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。
ps -ef | grep nginx | awk '{print $7}' 选取nginx进程的第七列
2.PID 进程ID
3.PPID 父进程ID
4.C CPU占用率
5.STIME 开始时间
6.TTY 开始此进程的TTY----终端设备
7.TIME 此进程运行的总时间
8.CMD 命令名
4 awk工作流程是这样的:先执行BEGING
然后读取文件,读入有/n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录······直到所有的记录都读完
最后执行END操作。
ps -ef | grep nginx | awk 'BEGIN {print "UID,PPID"} {print $1 " " $3 };END{print "END"}'