awk 命令使用
2024-09-01 08:38:54
awk命令就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。例如:
awk -F '/' '{print $NF}' tmp/file.txt
该命令用于读取file.txt文件中的内容,读取到的每行内容按'/'分隔符分割后并打印最后一个词,如读取到lib/xxx.txt内容将会打印出xxx.txt
awk命令语法:
awk [-F|-f|-v] 'BEGIN{} //{command1; command2} END{}' file
[-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
' ' 引用代码块
BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
// 匹配代码块,可以是字符串或正则表达式
{} 命令代码块,包含一条或多条命令
; 多条命令使用分号分隔
END 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
1、print命令是awk打印指定内容的主要命令:
示例:读取tmp目录下的file.txt
awk '{print}' tmp/file.txt
2、F指定分隔符读取
awk -F '/' '{print $1}' tmp/file.txt
按分隔符分割后打印第一个词
awk -F '/' '{print $NF}' tmp/file.txt
按分隔符分割后打印最后一个词
awk -F '/' '{print $(NF-1)}' tmp/file.txt
按分隔符分割后打印倒数第二个词
附注:
- $0 表示整个当前行
- $1 每行第一个字段
- NF 字段数量变量
- NR 每行的记录号,多文件记录递增
- FNR 与NR类似,不过多文件记录不递增,每个文件都从1开始
- \t 制表符
- \n 换行符
- FS BEGIN时定义分隔符
- RS 输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
- ~ 匹配,与==相比不是精确比较
- !~ 不匹配,不精确比较
- == 等于,必须全部相等,精确比较
- != 不等于,精确比较
- && 逻辑与
- || 逻辑或
- + 匹配时表示1个或1个以上
- /[0-9][0-9]+/ 两个或两个以上数字
- /[0-9][0-9]*/ 一个或一个以上数字
- FILENAME 文件名
- OFS 输出字段分隔符, 默认也是空格,可以改为制表符等
- ORS 输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
- -F'[:#/]' 定义三个分隔符
最新文章
- 意外关机引起 IntelliJ IDEA 报 org.jdom.input.JDOMParseException 异常的,解决办法
- linux中grep命令详解
- 开启ACM的征途
- vim 学习日志(4):多窗口使用技巧
- 仓鼠找sugar(洛谷 3398)
- mssql全文索引
- 八大排序算法之三选择排序—简单选择排序(Simple Selection Sort)
- (C/C++) 算法,编程题
- MySQL学习笔记(二)
- 条款19 command 模式与好莱坞法则
- 连接Access数据库查询语句
- HTML 5 video 视频标签全属性详解
- 多路复用的server模型
- WinForm 控件(下)
- Golang 入门 : 配置代理
- 爬虫-----爬取所有国家的首都、面积 ,并保存到txt文件中
- BZOJ1095 [ZJOI2007] Hide 捉迷藏 (括号序列 + 线段树)
- SQLAlchemy(包含有Flask-Migrate知识点)
- Excel编辑栏字体显示大小
- 过滤器会拦截 前端页面加载 js文件的请求