上海装修公司排名l,工具seo,中国建设集团总公司官网,秦皇岛海三建设董事长一、Linux 三剑客之 grep
1、 内容检索
获取行#xff08;单行#xff09; grep pattern file获取内容 grep -o pattern file获取上下文 grep -A -B -C pattern file 2、 文件检索
递归搜索 grep pattern -r dir/展示匹配文件名 grep -H 111 /tmp/1只展示匹配文件名 grep …
一、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 进程
ps -ef | grep ssh使用管道连接两个命令ps、grep都会同时执行两个进程都会启动使用grep进行过滤这个命令也在执行它里面也有ssh所以带有ssh的进程都被搜索出来了503 2507 1 0 29 821 ?? 0:00.08 /usr/bin/ssh-agent503 50022 11154 0 8:11下午 ttys002 0:00.00 grep sshps -ef | grep ssh | grep -v grep通过 -v 过滤掉包含grep的进程503 2507 1 0 29 821 ?? 0:00.08 /usr/bin/ssh-agent二、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/比较表达式 $22 $1b
5、 awk pattern 匹配表达式案例 开始和结束 awk BEGIN{}END{} 正则匹配 整行匹配 awk /Running/字段匹配 awk $2~/xxx/ 行数表达式 取第二行 awk NR2去掉第一行 awk NR1 区间选择 awk /aa/,/bb/awk /1/,NR2
6、 action 行为表达式 {action}
打印 {print $0} {print $2}赋值 {$1abc}处理函数原始内容 $0更新后内容 {$1$1;print $0}
7、 单行转多行
echo 1:2:3 | awk BEGIN{RS:}{print $0}
1
2
38、 多行变单行
echo 1
2
3 | awk BEGIN{RS;FS\n;OFS:}{$1$1;print $0}
1:2:3echo 1
2
3 | awk BEGIN{ORS:}{$1$1;print $0}
1:2:3:9、 计算平均数
echo 1,10
2,20
3,30 | awk BEGIN{total0;FS,}{total$2}END{print total/NR}
2010、 awk 的词典结构 array
array 是稀疏矩阵类似 python 的词典类型统计多家机构的营业额统计多家机构的营业额平均值
echo a, 1, 10
a, 2, 20
a, 3, 30
b, 1, 5
b, 2, 6
b, 3, 7 | awk {data[$1]$3}
END{for(k in data) print k,data[k]}
a, 60
b, 18echo a, 1, 10
a, 2, 20
a, 3, 30
b, 1, 5
b, 2, 6
b, 3, 7 | awk {data[$1]$3;count[$1]1;}
END{for(k in data) print k,data[k]/count[k]}
a, 20
b, 6三、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 表示全局匹配 表示匹配内容
echo a:b:c | sed s/:/123/
a123:b:cecho a:b:c | sed s/:/123/
a:123b:cecho a:b:c | sed s#:#|#g
a|b|c6、 反向引用
使用()对数据进行分组使用\1 \2 反向引用分组
echo 0 1 2 3 4 | sed -E s#([1-3]) ([1-3]) ([1-3])#\3 \2 \1#
0 3 2 1 4最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你