总结下awk基本用法
命令格式:
awk '{commands} [{other commands}]'
awk 'condition{commands} [{other commands}]' 如:awk '$4=="gold"{print $0}' xxx.txt —— 打印第四列为gold的行
{$0 $1 $2 ...}: $0表示整行,$1表示第一列,$2表示第二列……
NR: number of record,{print $NR, $0}可以给行加上行号
NF: number of fields,每个记录的列数(默认空格分割计数)
打印第7行: awk 'NR==7{print $0}' test.txt
打印有10列的行: awk 'NF==10{print $0}' test.txt
打印最后一列: awk '{print $NF}' xxx
打印倒数第二列: awk '{print $(NF-1)}' xxx
{print $1, $2} 中的逗号表示使用默认输出分隔符连接1,2列并打印。(默认是空格)
{print $1$2} 和 {print $1 $2} 等效,第1,2列直接连接,中间没有分隔符。(即输出语句的空格表示直接连接)
定义变量:
awk 'BEGIN{在这里定义} {后续命令}'
内建变量:
FS:输入分隔符
OFS:输出分隔符 (O,不是零)
自定义输入分隔符使用逗号:
awk 'BEGIN{FS=","} {print $1, $2}' test.txt
自定义输出分隔符使用逗号:
awk 'BEGIN{FS=","; OFS=","} {print $1, $2}'
算术运算、
字符串和数字自动转换、
字符串和数字运算时自动parse开头的数字
使用正则
awk '/正则式/{命令}' xxx
awk '/abc/{print $0}' xxx 打印包含abc的行
正则式简介:
1. /abc/ 包含abc
2. /^abc$/ 匹配开头和结束
3. . 任意字符或空格
4. 转义 \. \? \/
5. 中括号
[xyz] 匹配xyz中的任意一个字符
[a-z] 匹配a-z范围内任意字符
[a-zA-Z]
[^a-z] ^放在中括号中表示不匹配,如 /a[^a-z]c/ 可以匹配 aBc,不能匹配abc
6. 数量:
* 0次或若干次
+ 1次或若干次
? 0次或1次
{a,b} 指定出现a~b次数,如{3}表示出现3次,{4,9} 表示可以出现4,5,6,7,8,9次
7. () 匹配的单位,如 /(ab){3}/ 要求包含ababab
总结下awk基本用法的更多相关文章
- Linux sed 和 awk的用法
sed用法: 原文链接:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html sed是一个很好的文件处理工具,本身是一个管 ...
- gawk(awk)的用法案例
gawk(awk)的用法案例 本文首先简单介绍一个gawk和awk的区别,然后是一点基本使用流程,最后是自己做的一个分析数据文件的脚本代码,供大家参考.另外想了解基本流程的入门知识的可以下载附件pdf ...
- <三剑客> 老大:awk命令用法
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一 个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是lin ...
- awk命令_Linux awk 命令用法详解
本文索引 awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术运算符 赋值运算符 逻 ...
- xss其他标签下的js用法总结大全
前段时间我遇到一个问题,就是说普通的平台获取cookie的语句为↓ Default <script src=js地址></script> 1 <scr ...
- ava下static关键字用法详解
Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static ...
- Linux下find命令用法详解
Linux下find命令用法详解 学神VIP烟火 学神IT教育:XueGod-IT 最负责任的线上直播教育平台 本文作者为VIP学员 烟火 第一部分:根据文件名查找 1.在当前目录 ...
- StringBuilder在高性能场景下的正确用法
转载:<StringBuilder在高性能场景下的正确用法> by 江南白衣 关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不 ...
- 文本处理三剑客之AWK的用法
1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...
随机推荐
- java synchronized的四种用法
一 修饰方法 Synchronized修饰一个方法很简单,就是在方法的前面加synchronized,synchronized修饰方法和修饰一个代码块类似,只是作用范围不一样,修饰代码块是大括号括起来 ...
- hashRouter and BrowserRouter
<html><body> <div> <button class="btn" onclick="btnFun();"& ...
- 以python为例讲解闭包机制
以python为例讲解闭包机制 缘起 在学习JS的过程中,总是无可避免的接触到闭包机制,尤其是接触到react后,其函数式的编程思想更是将闭包发扬光大,作为函数式编程的重要语法结构,python自然也 ...
- 一次CTS引发的网络故障
接到业务部门通知,A机房(库a)到B机房(库b)之间的数据库服务器之间的网络带宽异常突增,影响公司对外业务的整体带宽.一接到通知,作为数据库管理对所涉及的IP还是比较敏感.第一反应就是可能当时主库产生 ...
- PHP+Redis 有序集合实现 24 小时排行榜实时更新
基本介绍 Redis 有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个 double 类型的分数.redis 正是通过分数来为集合中的成员进行从 ...
- Repeater的使用
1.页面代码 如果要分页,那么页面开头必须写(<%@ Register Src="~/Controls/Page.ascx" TagName="Page" ...
- js正则去掉所有html标签/某一特定字符
java后台 String str=hello你好吗,我很好 thank you????噼安胖胖 "; String reg = "[\ud83c\udc00-\ud ...
- MySQL解决插入数据乱码问题
首先配置 my.ini 如果没有将原来的 my-default.ini 备份出一个 修改my.ini [1]在[client]节点下添加 (这个如果是另一种character_set_server=u ...
- Mysql学习笔记(003)-案例讲解基础查询
案例讲解基础查询 #.下面的语句是否可以执行成功 SELECT last_name, first_name, salary AS sal FROM employees; #.下面的语句是否可以执行成功 ...
- boost multi index
Boost.MultiIndex makes it possible to define containers that support an arbitrary number of interfac ...