【Linux篇】--awk的使用

一、前述

awk是一个强大的文本分析工具。相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。 简单来说awk就是把文件逐行的读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理。

二、具体

1、基础知识点

awk -F '{pattern + action}' {filenames} 支持自定义分隔符 支持正则表达式匹配 支持自定义变量,数组  a[1]  a[tom]  map(key) 支持内置变量 ARGC               命令行参数个数 ARGV               命令行参数排列 ENVIRON            支持队列中系统环境变量的使用 FILENAME           awk浏览的文件名 FNR                浏览文件的记录数 FS                 设置输入域分隔符,等价于命令行 -F选项 NF                 浏览记录的域的个数 NR                 已读的记录数 OFS                输出域分隔符 ORS                输出记录分隔符 RS                 控制记录分隔符 支持函数 print、split、substr、sub、gsub 支持流程控制语句,类C语言 if、while、do/while、for、break、continue

$0表示所有域, $1表示第一个域, $n表示第n个域。 默认域分隔符是空格键或tab键。 2、举例

只是显示/etc/passwd的账户:CUT awk -F':' '{print $1}' passwd 只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行开始前添加列名name,shell,在最后一行添加"blue,/bin/nosh"(cut,sed) awk -F':' 'BEGIN{print "name,shell"} {print $1 "," $7} END{print "blue,/bin/nosh"}' passwd 搜索/etc/passwd有root关键字的所有行 awk  '/root/ { print $0}'   passwd 统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容

xxx     Math English C++  Experiment
Monkey  100   90     95   Good
Cat     80    100    60   Perfect
Dog     90    60     70   Great
Tiger   95    85     90   Fantastic
    Administrator@51B6904C3C8A485 ~/learn_awk  
    $ awk '{print $2}' test.txt  
    Math  
    100  
    80  
    90  
    95  
      
    Administrator@51B6904C3C8A485 ~/learn_awk  
    $  

 看这篇博客吧 ,讲得很好https://blog.csdn.net/stpeace/article/details/46848873

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

简述OC语言

对于一门语言的学习是需要时间领悟的,而对于一些原理性的问题,我们需要清楚其核心思想,知其然而知其所以然,这样才能有利于自己的后续发展。本文只是简述,没有面面具到...

2112
来自专栏Hongten

java开发_UUID(Universally Unique Identifier,全局唯一标识符)和GUID(Globally Unique Identifier,全球唯一标识符)

GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifie...

1101
来自专栏IT杂记

通过Java程序提交通用Mapreduce任务并获取Job信息

背景 我们的一个业务须要有对MR任务的提交和状态跟踪的功能,须要通过Java代码提交一个通用的MR任务(包括mr的jar、配置文件、依赖的第三方jar包),并且...

1.1K5
来自专栏坚毅的PHP

my php & mysql FAQ

php中文字符串长度及定长截取问题使用str_len("中国") 结果为6,php系统默认一个中文字符长度为3,可改用mb_strlen函数获得长度,mb_su...

3846
来自专栏cmazxiaoma的架构师之路

【分布式架构之旅】Redis入门

2573
来自专栏Java 源码分析

Java之StringBuffer

1.存储: append(data) 添加在最后 insert(index,data) 在制定位置添加2.删除: delete(start,end) 删除...

3246
来自专栏java一日一条

2015年Java开发岗位面试题归类

3. 说说你知道的几个Java集合类:list、set、queue、map实现类咯。。。

881
来自专栏偏前端工程师的驿站

JS魔法堂:Data URI Scheme介绍

一、前言                                   上周五公司内部的Any Topic Conf.上我和同事们分享了这个主题,有同事说...

2237
来自专栏LinXunFeng的专栏

打造Moya便捷解析库,提供RxSwift拓展

1303
来自专栏CDA数据分析师

工具 | 很全的 Python 面试题

Python语言特性 1 Python的函数参数传递 看两个例子: ? 所有的变量都可以理解是内存中一个对象的“引用”,或者,也可以看似c中void*的感觉。 ...

1.3K9

扫码关注云+社区

领取腾讯云代金券