linux awk命令

Awk的常用命令语法
awk
命令擅长格式化报文或从一个大的文本文件中抽取数据包,下面是该命令的基本语法
awk [-F filed-separator] “commands” input-file(s)
[ - F
域分隔符]是可选的,a w k使用空格作为缺省的域分隔符,如果在要处理的文件中是以冒号作为分割域的(passwd文件),则在处理的时候要这样指明 awk �CF: commandinput-file(s)
1.1
域和记录
a w k
执行时,其浏览域标记为$1$2 . . . $ n。这种方法称为域标识。使用$ 1 , $ 3表示参照第1和第3域,注意这里用逗号做域分隔。如果希望打印一个有 5个域的记录的所有域,不必指明 $ 1 , $ 2 , $ 3 , $ 4 , $ 5,可使用$ 0,意即所有域。
1.2
保存aw k输出
$ awk ‘{print $0}’ input-files > out-files (#
重定向保存输出)
$ awk ‘{print $0}’ input-files | tee out-files (#
使用t e e命令,输出到文件的同时输出到屏幕)
1.3
常用的awk命令举例
[root@mypc /]# awk '$0 ~ /user/' /etc/passwd (#
如果某域含有user就将该行打印出来)
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
[root@mypc /]# awk '/user/' /etc/passwd (#
同上)
[root@mypc /]# awk -F: '{if ($5 ~ /user/) print $0}' /etc/passwd (#
如第五域有user则输出该行)
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
[root@mypc /]# ifconfig | awk '/inet/{print $2}' (#
ifconfig的输出中抽取含inet的行并打印第二域)
[root@mypc /]# ifconfig | awk '/inet/{print $2}' | awk -F: '{print $2}' (#
在上面的基础上再抽取,这个命令可以让你直接得到本机的ip地址)


你可能感兴趣的:(linux,命令,TED)