<返回更多

Linux Shell工具之 sed/awk

2020-07-24    
加入收藏



分享下处理数据分析时,linux shell 两个比较基础的工具

sed 指令

非交互式的字符流编辑器,支持对多文件多行的管道处理

sed [option] 'command' f.txt

sed -n '2,3p' f.txt 输出文件的第2到3行

sed -n '/ok/p' f.txt 输出文件中匹配ok的行

sed -i 's/mac/ok/g' f.txt 替换文件中mac字符为ok g表示全局替换

sed -i '/mac/d' f.txt 删除文件中匹配mac字符的行

sed -i 是直接在原文件上修改

sed -e 不在原文件上修改,输出到终端,可以借助cat 命令 > 输出到文件中,达到和sed -i 一样的效果

 

awk 指令

awk -F"," '条件{指令}' 包含多个条件时,通过分号隔开.默认的分隔符是空格

awk -F"," 'NF==7{print $0}' 如果读取行的字段数是7则输出此行

awk -F"," 'if(NF==7){print $0}' 条件语句

awk -F"," '{name="jim";age=10;print name}' a.txt 自定义变量

awk -F"," '/keywords/{print $0}' 通过匹配模式过滤

free|awk '/Mem/{print $4}' 查看剩余内存

ifconfig em1|awk '/inet/{print $2}' 查看Ip

uptime |awk '{print $1,$10}' 查看cpu使用率

 

awk [选项] ' BEGIN{编辑指令 } {编辑指令} END{编辑指令}' 文件

读入第一行文本之前执行(执行1次),一般用来初始化操作

逐行读入文本执行相应的处理(1行执行1次),是最常见的编辑指令块

处理完最后一行文本之后执行(执行1次),一般用来输出处理结果

三者可单独使用,也可同时使用。 所有命令都要写在{}里

 

awk 'BEGIN{print "hello"}条件{print "a"}END{print "over"}' a.txt

ifconfig em1 |awk 'BEGIN{print "开始a"}/inet/{print $2}END{print "结束o"}'

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>