awk:一门语言,过滤内容(取列),打印,删除

awk '{print $1}' 文件

例如,文件如下:

[root@wuyike ~]# cat awk.txt

wuyike wuyikekeke

ddd fff

eded


显示文件的第一列:

[root@wuyike ~]# awk '{print $1}' awk.txt

wuyike

ddd

eded


显示文件的第二列

[root@wuyike ~]# awk '{print $2}' awk.txt

wuyikekeke

fff


显示两列:

[root@wuyike ~]# awk '{print $1 $2}' awk.txt

wuyikewuyikekeke

dddfff

eded


显示两列并加分隔符:

[root@wuyike ~]# awk '{print $1" "$2" "}' awk.txt

wuyike wuyikekeke 

ddd fff 

eded 


[root@wuyike ~]# less /etc/passwd

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync


显示以冒号为分隔符的第一列:

[root@wuyike ~]# awk -F ":" '{print $1}' /etc/passwd

root

bin

daemon

adm

lp

sync


显示以分号为分隔符的最后一列:(NF是指最后一列)

[root@wuyike ~]# awk -F "/" '{print $NF}' /etc/passwd

bash

nologin

nologin

nologin

nologin

sync

shutdown

halt


注:Linux里面严格区分大小写


NR代表行号

[root@wuyike ~]# awk '{if(NR<31 && NR>19) print $1"\n"}' test.txt

20


21


22


23


24


25


26


27


28


29


30