尝到awk
我前几天写的sed,这个时候继续了解它的兄弟,awk,两者都使用,一种感觉。既可以用来处理场。假设你想要做文本处理。sed删除。匹配,一些频繁更换使用,假设每一行文本,你想深入,一些每行和列处理的,例如,统计,格式化输出。awk就能够派上用场了
查看自己ubuntu当前的awk
which awk,其有用的是/usr/bin/mawk
在学习sed篇中,我们知道,sed是读取文本的每一行到一个模式空间,然后对模式空间的内容进行处理。事实上awk差点儿相同。它也是对模式空间进行处理。可是它做的处理动作时"切片"
1.awk的变量
为什么要先说变量呢。由于不用变量,awk基本上就是废(游戏玩多了^-^)
首先我们把/etc/passwd里面的第一行取出来备用
head -1 /etc/passwd > test.txt
$0 当前处理的记录(默认是行。除非指定RS)
awk 'BEGIN{FS=":"}{print $0}' test.txt
root:x:0:0:root:/root:/bin/bash
$1---$n 当前的第几个字段。和命令行參数类似
awk 'BEGIN{FS=":"}{print $1,$3}' test.txt
FS 这里记住:F表示域field。S表示分隔seperate
这里有两种写法:我喜欢用这样的,简洁明了
awk -F: '{print $1,$2,$3}' test.txt
RS 想想,R表示记录record,S同上
awk 'BEGIN{RS=":"}{print $1,$3}' test.txt
NF number of field 能够理解为多少列
awk 'BEGIN{FS=":"}{print NF}' test.txt
NR number of record 能够理解为多少行
awk 'BEGIN{FS=":"}{print NR}' test.txt
OFS FS是处理这行的时候的分隔,O是指输出,OFS就是指输出时候的分隔符
awk 'BEGIN{FS=":"}{print $1,$2,$3}' OFS="#" test.txt
ORS 同理
2.awk的格式化输出
awk的处理完文本之后还能够依照格式化进行输出。非常强大吧,事实上说白了就是printf
awk -F: '{printf "%s#%s#%s\n" ,$1,$2,$3}' test.txt
%d 十进制整数
%f 浮点数
%s 字符串
%% 百分号
- 左对齐
尽管简单,可是灵活运用,效果特殊
3.awk的算术运算
awk支持的运算符:+ - * / % ** awk甚至提供了一些数学函数sin(x),cos(x)等
还能够做一些统计运算。统计某一列的值
awk '{ sum += $1 }; END { print sum }' file
awk 'NR!=1{a[$6]++;} END {for (i in a) print i ", " a[i];}'
4.模式
awk '模式{命令}‘ file
模式能够是一下几种:
1.正則表達式
awk -F : '/^r/{print $1}' /etc/passwd
2.表达式
awk -F: '$3>=500{print $1,$3}' /etc/passwd
awk -F: '$7 ~/bash$/{print $1,$7}' /etc/passwd
awk -F: '$7 !~/bash$/{print $1,$7}' /etc/passwd
3.BEGIN和END
BEGIN{ 这里面放的是运行前的语句 }
END {这里面放的是处理全然部的行后要运行的语句 }
{这里面放的是处理每一行时要运行的语句}
比如:
awk 'BEGIN{test="123";print test}'
发现的事实,没有文件也可以用awk,由于BEGIN它不依赖于输入,但请注意,打印,而无需使用内部变量$
尝到awk的更多相关文章
- linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
本节中正则表达式的工具程序 grep,sed和awk是重点,也是难点!!! 先补充一下一. 管道| / 重定向> / xargs 如:1. 管道和重定向的区别:具体可以见 http://www. ...
- awk命令简介
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- awk使用说明
原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...
- awk应用
h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...
- 3.awk数组详解及企业实战案例
awk数组详解及企业实战案例 3.打印数组: [root@nfs-server test]# awk 'BEGIN{array[1]="zhurui";array[2]=" ...
- shell——awk
awk -F"分隔符" "command" filename awk -F":" '{print $1}' /etc/passwd 字段引用 ...
- 【Linux】AWK入门
什么是AWK AWK是一种用于处理文本的编程语言工具,一个模式匹配程序.一个典型的示例是将数据转换成格式化的报告. 在命令行输入如下awk命令: awk -F":" '{ prin ...
- 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od
awk awk是个很好用的东西,大量使用在linux系统分析的结果展示处理上.并且可以使用管道, input | awk '' | output 1.首先要知道形式 awk 'command' fi ...
- sed awk grep三剑客常用
sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之 ...
随机推荐
- Swift - 协议(protocol)
1,Swift中协议类似于别的语言里的接口,协议里只做方法的声明,包括方法名.返回值.参数等信息,而没有具体的方法实现. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- 使用GDI+绘制的360风格按钮控件(使用CN_DRAWITEM消息重绘,并使用TGPGraphics,TGPPen,TGPImage,TGPBitmap等)good
将下面的代码拷贝到一个单元中,创建一个包,加入这个单元后安装.使用的时候设置好背景颜色,边框颜色,图标(png格式)相对路径的文件名称.这个控件可以利用PNG图像的颜色透明特性,背景色默认透明度为50 ...
- 使用ffmpeg 对视频截图,和视频转换格式
//执行CMD命令方法 public static void CmdProcess(string command)//调用CMD { //实例化一个进程类 ...
- 以JTextPanel为例Swing的鼠标事件详解
如下界面可以通过该界面研究一下Swing的鼠标事件: 图中用红粗线圈起来的为JtextPanel,该Panel添加了鼠标事件监听器,鼠标事件监听器有三种,分别为MouseWheelListener,M ...
- hdu 1086(判断线段相交)
传送门:You can Solve a Geometry Problem too 题意:给n条线段,判断相交的点数. 分析:判断线段相交模板题,快速排斥实验原理就是每条线段代表的向量和该线段的一个端点 ...
- KFC - About KFC - Quality Assurance
KFC - About KFC - Quality Assurance Restaurant Quality The main attributes for KFC restaurant excell ...
- RFC2889转发性能測试用例设计和自己主动化脚本实现
一.203_TC_FrameRate-1.tcl set chassisAddr 10.132.238.190 set islot 1 set portList {9 10} ;#端口的排列顺序是po ...
- poj2245Lotto(最基础的dfs)
题目链接: 啊哈哈,点我点我 思路:最開始画好搜索状态,然后找好结束条件,最好预推断当前找到的个数和能够找到的是否大于6就可以.. 题目: Lotto Time Limit: 1000MS Mem ...
- POJ1182 食物链 【并查集变种】
挺简单的 N个元素扩展为 3*N个 i-A i-B i-C A吃B吃C吃A 挑战程序设计的89面 #include <cstdio> #include <cstdlib> #i ...
- 《Pro Android Graphics》读书笔记之第三节
Android Frame Animation: XML, Concepts and Optimization Frame Animation Concepts: Cels, Framerate, a ...