awk介绍
awk不单单是一个命令,而是一门语言。
awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。(擅长取列)
调用awk
1.命令行使用
awk [-F field-separator] ‘commands’input-file(s)
commands是真正awk命令,[-F域分隔符],input-file(s)是待处理的文件。
在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,不指明-F域分隔符的情况下,默认的域分隔符是空格。
awk '{print $1}' 文件
$0打印一行内容,$1打印第一列,$2打印第二列,$NF打印最后一列,$NF-1打印倒数第二列。
默认空格为分隔符
[root@muban data]# cat iantest1.txt
1Ian aaa
2Ian aaa
3Ian aaa
注意双引号
指定分隔符为”:”
[root@muban data]# 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
...
取出文件第20行到第30行第一列内容。
[root@muban data]# seq 100 >awktest.txt
[root@muban data]# cat awktest.txt
1
2
3
4
5
6
7
...
100