软件测试 / 测试开发丨 Linux 数据处理三剑客学习笔记
免费领取:测试资料+性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档
本文为霍格沃兹测试开发学社学员学习笔记分享
一、Linux 三剑客之 grep
1、 内容检索
获取行(单行) grep pattern file
获取内容 grep -o pattern file
获取上下文 grep -A -B -C pattern file
2、 文件检索
递归搜索 grep pattern -r dir/
展示匹配文件名 grep -H 111 /tmp/1
只展示匹配文件名 grep -l 111 /tmp/1
3、 范围约束
man grep 命令可以找到 grep 的主流用法
忽略大小写 grep -i pattern file
不显示匹配的行 grep -v pattern file
使用扩展正则表达式 grep -E pattern file
文件范围和目录范围约束 grep 111 -r /tmp/demo/ --include "11*"
4、 进程检索
进程过滤场景比较特殊,需要注意
grep 本身会开启新进程,所以需要单独过滤掉 grep 进程
二、Linux 三剑客之 awk
1、 awk 基本语法
awk 是 linux 下的一个命令,同时也是一种语言解析引擎
awk 具备完整的编程特性。比如执行命令,网络请求等
精通 awk,是一个 linux 工作者的必备技能
语法 awk 'pattern{action}'
2、 awk 上下文变量
开始 BEGIN 结束 END
行数 NR
字段与字段数 11 12 … $NF NF
整行 $0
字段分隔符 FS
输出数据的字段分隔符 OFS
记录分隔符 RS
输出字段的行分隔符 ORS
3、 字段变量用法
-F 参数指定字段分隔符,可以用|指定多个- 多分隔符 -F ‘<|>’
BEGIN{FS=“_”} 也可以表示分隔符
$0 代表当前的记录
$1 代表第一个字段
$N 代表第 N 个字段
$NF 代表最后一个字段
$(NF-1) 代表倒数第二个字段
4、 pattern 表达式
正则匹配 $1~/pattern/ /pattern/
比较表达式 $2>2 $1=="b"
5、 awk pattern 匹配表达式案例
开始和结束 awk 'BEGIN{}END{}'
正则匹配整行匹配 awk '/Running/'字段匹配 awk '$2~/xxx/'
行数表达式取第二行 awk 'NR==2'去掉第一行 awk 'NR>1'
区间选择 awk '/aa/,/bb/'awk '/1/,NR==2'
6、 action 行为表达式 {action}
打印 {print $0} {print $2}
赋值 {$1="abc"}
处理函数
原始内容 $0
更新后内容 {$1=$1;print $0}
7、 单行转多行
8、 多行变单行
9、 计算平均数
10、 awk 的词典结构 array
array 是稀疏矩阵,类似 python 的词典类型
统计多家机构的营业额
统计多家机构的营业额平均值
三、Linux 三剑客之 sed
1、 sed 基本语法与常用参数
语法结构 sed [addr]X[options]
-e 表达式
sed -n ‘2p’ 打印第二行
sed ‘s#hello#world#’ 修改
-i 直接修改源文件
-E 扩展表达式
–debug 调试
2、 sed pattern 表达式
行数与行数范围 20 30,35
正则匹配 /pattern/
区间匹配 //,//
3、 sed action 表达式
p 打印,通畅结合-n 参数:sed -n ‘2p’
s 查找替换:s/REGEXP/REPLACEMENT/[FLAGS]
d 删除,删除前两行 sed ‘1,2d’
a 追加
c 改变
i 插入内容到匹配行之前
e 执行命令
分组匹配与字段提取:sed ‘s#([0-9] )|([a-z] )#\1 \2#’
4、 行数操作
打印特定行 sed -n 2p
删除最后一行 sed $d
5、 s 表达式
s 表示替换
s 后面的追加字符可以为任意字符
g 表示全局匹配
& 表示匹配内容
6、 反向引用
使用()对数据进行分组
使用\1 \2 反向引用分组
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/4cc3dc471b50dbca44bf9f345】。文章转载请联系作者。
评论