首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
awk是一种用于处理文本、模式匹配的编程语言。与sed和grep,俗称Linux下的三剑客。学会 awk 等于你在 Linux 命令行里,又多了一种处理文本的选择。 ------------ 新建一个test.txt文件,内容如下: ```bash My first language:Python My second language:Shell My third language:Java My fourth language:C ``` ------------ **基础用法** 示例: ```bash awk '{print $0}' test.txt ``` 说明: - print 表示打印,$0 表示一整个记录,test.txt 表示一个文件。所以 - awk '{print $0}' test.txt - 表示把 test.txt 文件里面的每行记录都打印出来。 - $0 表示整个记录,可以用$1, $2, $3.....则表示整个记录中的第一个字段,第二个字段...... ------------ 字段的默认分隔符是空格或者制表符这些,默认意味着我们可以自己显式着指定分隔符。下面我们用“:”来作为我们的分隔符: ```bash awk -F ':' '{print $2}' test.txt ``` ------------ **条件限制** 在打印文本的时候,我们可以指定一些条件。格式如下: awk 参数 条件 要执行的动作 文件 例如我们指定分隔符为“:”,条件为第二个字段为"Java"的记录。 ```bash awk -F ':' '$2 == "Java" {print $2}' test.txt ``` ------------ **条件语句** ```bash awk '{if(NR > 1) print $2}' test.txt ``` 使用else: ```bash awk '{if(NR > 1) {print $2} else {print $1}}' test.txt ``` ------------ **函数** awk 提供了一些内置函数来供我们使用,一些常用的函数如下: tolower():字符转为小写。 toupper():字符转为大写 length():返回字符串长度。 substr():返回子字符串。 sqrt():平方根。 rand():随机数。 示例: ```bash awk '{print toupper($1)}' test.txt ``` ------------ **变量** 前面我们用到的 NR 是一个表示当前正在处理的记录是第几个记录的内置变量,常用的内置变量如下: - NR:表示当前处理的是第几行 - NF:表示当前行有多少个字段 - FILENAME:当前文件名 - FS:字段分隔符,默认是空格和制表符。 - RS:行分隔符,用于分割每一行,默认是换行符。 - OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。 - ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。 示例: 打印每一个记录的最后一个字段,就可以使用变量 NF ```bash awk '{print $NF}' test.txt ``` ------------ 小结: awk命令可以定制输出的文件流格式,在awk命令中可以使用变量,条件限制,条件语句,函数等。
上一篇:
shell编程-sed
下一篇:
shell编程-常用命令补充
该分类下的相关小册推荐:
WebRTC音视频开发实战
深入浅出Go语言核心编程(三)
Go语言从入门到实战
Golang并发编程实战
深入浅出Go语言核心编程(八)
Go Web编程(上)
深入浅出Go语言核心编程(一)
Go开发基础入门
Go-Web编程实战
Go Web编程(中)
Go语言入门实战经典
从零写一个基于go语言的Web框架