浅谈Linux “三剑客” --grep、sed、awk


前言

本文基于CentOS Linux release 7.6.1810 (Core)撰写。小伙伴们有没有出现以下的情况?

在查询数据时,想要截取某一行某一列的数据亦或是在查询日志时,想要解决某一段的日志来分析。

今日我来分享一下我对Linux “三剑客”理解及举一些可运用“三剑客”来排忧解难的例子。接下来就直奔主题吧!

命令清单

1.grep //可用于关键字筛选相关查询命令输出的结果

2.awk //可用于按需截取某数据中的某一列的值

3.sed //可用于插入数据、替换数据,当然也能用于截取日志


应用场景及“食”用方法

一、grep的应用

某天,你突发奇想,想看看你的服务器有没有被人恶意扫描登录(但未登录成功),那你肯定会想到去查看系统日志中的Secure,看看有无密码错误无法正常登录的日志,从而来判断你的服务器是否被恶意登录。

但是你一用cat /var/log/secure 后,顿时就傻了眼了(这日志记录也太多了吧)

Image text

还好,第一位“剑客”出场,我们都知道grep可以根据关键字筛选出你想要的信息,那么该如何用呢?少侠莫着急,我现在就展示给你。

既然我们要筛选出恶意登录但未登录成功的日志,那我们就可以cat /var/log/secure |grep failed

Image text

二、sed的应用

1、有时候,你在工作中可能会遇到要将A文件的某几行数据导到B文件(空的)里面,来进行收据整理,若导入的行数很多而且位置分散,那就很折腾人了。下面,我来展示一下如何简化上述操作。

模拟环境:
先用vim创建一份文件来扮演A文件,在A文件内填入几行数据;
接着用touch 来创建一份空文件来模拟B文件;
再使用sed -n '某w /B文件的绝对路径' /A文件的绝对路径
就能实现将A文件的某行数据导入到B文件中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hQY5bv8K-1575357012528)(https://raw.githubusercontent.com/alanxing1122/alanxing1122.github.io/master/assets/blog_photos/sed_n_first_sentence.png)]

2、有时候,你需要找某一个时间段的日志来供你分析业务情况,当你用cat或者more或less去查看日志文件时,会发现信息量惊人。这里就可以用sed的一个小技巧来解决你的问题。

模拟环境:
1)直接用cat或more或less查看secure文件,
2)再根据你的日志文件中时间格式,用sed来截取所需时间段的日志。比如,我要截取11月10日到今天的secure日志。
sed -n '/Nov 10 /,$p' /var/log/secure

Image text

Image text

三、awk的应用

当你想要某个文件中某行数据时,可以用下面这种小技巧。
awk -F “你文件的分隔符,可根据需要自定义” ‘{print KaTeX parse error: Expected 'EOF', got '}' at position 3: NF}̲’ /etc/passwd …NF的值可根据需要的列数而进行改变)

Image text


后记

以上所述,均为本人所经所遇后得出的小心得,若有不足之处,请各位大侠斧正。若有幸被转载,烦请注明出处。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值