sed/awk 命令操作小结

sed

sed是Stream Editor字符流编辑器,可对文件实现快速增、减、删、改、查操作。

【语法格式】

sed [选项] [sed内置命令字符] [输入文件]

sed命令的参数选项及说明:

-n  取消默认的sed的输出,常与sed内置命令p连用

-i  直接修改文件内容,而不是输出到终端

sed常用内置命令字符的功能说明:

na   表示在第n行后插入文本

ni    表示在第n行前插入文本

nd   表示删除第n行文本

np   表示打印第n行文本,常与-n参数选项连用

s/regexp/replacement/g    匹配regexp部分内容,用replacemen替换regexp匹配到的内容,g表示全局替换

                                          其中‘/’可以用任意不易混淆的字符替换,例如!,@,#,%等都可以

N;     表示不会清空模式空间的内容,从输入文件中读取下一行数据,追加到模式空间中,两行数据以换行符\n连接

在指定文本后插入内容

sed -i '/\[database]/a connection = mysql+pymysql://keystone:keystone@controller/keystone/etc/keystone/keystone.conf       

awk

awk不仅是linux命令,还是编程语言,可以处理数据和生成报告。

【语法格式】

awk [参数] '条件{动作}' 文件

awk命令的常用功能

1.指定分隔符显示某几列:

awk -F "GET|HTTP" '{print $2} access.log以GET|HTTP为分隔符,直接取出显示出日志文件的url这一列

awk -F "分隔符"分隔符常用正则表达式表示

2.通过正则表达式取出你想要的内容:

awk '$6~/Failed/{print $11}' /var/log/secure分析生产环境中的日志找出谁在破解用户的密码

3.显示出某个范围内的内容

awk 'NR==20,NR==30' filename显示文件的20达到30行

4.通过awk进行统计计算

awk '{sum+=$0}END{print sum}' ett.txt计算总和

5.awk数组计算与去重

awk '{array[$1]++}END{for(key in array)print key,array[key]}' access.log对日志进行统计与计数

array表示数组名,$1表示统计内容并作为下标,用END模式输出最终结果

 

gsub("替换对象","替换内容",哪一列)或者gsub(/替换对象/,"替换内容",哪一列)

当省略最后一部分‘哪一列’时,代表替换整行内容

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值