码迷,mamicode.com
首页 > 其他好文 > 详细

awk 详解

时间:2015-09-19 14:00:33      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:awk

AWK使用方法总结
Aawk是一种优秀的文本编辑工具,在系统管理工作中做大量使用。以下是对其做简单总结.
AWK内置变量
属性
说明
$0当前记录(作为单个变量)
$1~$n当前记录的第n个字段,字段间由FS分隔
FS输入字段分隔符 默认是空格
NF当前记录中的字段个数,就是有多少列
NR已经读出的记录数,就是行号,从1开始
RS输入的记录他隔符默 认为换行符
OFS输出字段分隔符 默认也是空格
ARGC命令行参数个数
ARGV命令行参数数组
内置变量实例

1、常用操作

awk ‘/^root/{print $0}‘ /etc/passwd 


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


/^root/ 为选择表达式,$0代表是逐行


2、设置字段分隔符号(FS使用方法)



awk ‘BEGIN{FS=":"}/^root/{print $1,$NF}‘ /etc/passwd


root /bin/bash


FS为字段分隔符,可以自己设置,默认是空格,因为passwd里面是”:”分隔,所以需要修改默认分


隔符。NF是字段总数,$0代表当前行记录,$1-$n是当前行,各个字段对应值。

3、记录条数(NR,FNR使用方法)



 awk ‘BEGIN{FS=":"}{print NR,$1,$NF}‘ /etc/passwd


1 root /bin/bash

2 bin /sbin/nologin

3 daemon /sbin/nologin

4 adm /sbin/nologin

5 lp /sbin/nologin

6 sync /bin/sync

7 shutdown /sbin/shutdown

……


NR得到当前记录所在行



4、设置输出字段分隔符(OFS使用方法)


 awk ‘BEGIN{FS=":";OFS="^^"}/^root/{print FNR,$1,$NF}‘ /etc/passwd


1^^root^^/bin/bash

 


OFS设置默认字段分隔符


AWK变量传值

test=‘awk code‘                            


echo | awk  ‘{print test}‘ test="$test"


awk code

echo | awk  test="$test" ‘{print test}‘ 


awk: cmd. line:1: fatal: cannot open file `{print test}‘ for reading (No such file or directory)


 


格式如:awk ‘{action}’  变量名=变量值   ,这样传入变量,可以在action中获得值。 注意:变量名与值放到’{action}’后面。


awk 详解

标签:awk

原文地址:http://20150721.blog.51cto.com/10649191/1696230

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!