awk学习记录

来源:互联网 发布:立体矢量图形软件 编辑:程序博客网 时间:2024/06/09 17:36

awk记录

awk初识

awk是一个高效的文本处理工具。awk通过文件或流读取数据,然后根据指定的分隔符对数据进行切片,然后通过规则对数据进行处理,最后输出!我们在linux上经常使用的unix awk的GUN版:gawk。

awk基础概念

awk有三个基础概念:

  • 字段
  • 数据
  • 规则

如下数据文件data.txt所示:

姓名 上午 下午陈二 数学 化学张三 语文 数学李四 数学 体育王五 地理 语文

awk读取如上数据后,根据记录分割符RS(默认是换行符)把数据分为5条记录,根据字段分割符FS(默认是空格)把记录分成3个字段,并把每个字段赋予1,2…,$0表示整条记录。然后根据规则进行处理输出。
awk的命令形式:

awk [options] 'script' FILE.... awk [options] '/pattern/{action}' FILE... 

1.如果我们想查看每个人上午什么课,就可以执行:

root@kali2:~# awk '{print $1,$2}' data.txt姓名 上午陈二 数学张三 语文李四 数学王五 地理

在这一条操作中我们只是使用{action}即“{print 1,2}”,其中1,2打印的是第一,第二列文件。

2.如果我们想查看张三的一天上什么课,就可以执行:

root@kali2:~# awk '/^张三/{print $0}' data.txt张三 语文 数学

在这一条操作中我们使用了”//”及{print},”//”内使用的是正则表达式,/^张三/表示匹配以张三开头的记录,{print $0}表示打印这条记录。
3.如果我们想查看上午是数学的课的学生的课表,就可以执行:

root@kali2:~# awk '$2 ~ /数学/{print $1}' data.txt陈二李四

在这一条操作中我们使用了”~”表达式,表示第二列中匹配“数学”字符串的记录就打印出$1即第一列。

0 0
原创粉丝点击