Linux三剑客(grep、awk、sed) - 初识篇

阅读: 1376 | 文章分类: Linux | Tag: Linux三剑客   grep   awk   sed  

## 初识Linux三剑客(grep、awk、sed) 在linux中可以说最为核心的命令是grep、awk、sed这三个命令,所以被很多人称为Linux三剑客,如果你是从事Linux运维或者运维开发等行业,那就少不了这三个命令的陪伴了 我们先来个初识,让大家有个大概的理解和理念,后续我们将继续深入地了解它们的用法 ### grep:擅长过滤行 在进程里面过滤某个指定程序,或者在文本或其他打印输出里面过滤某一行,我们先来回顾一下日常中的用法 ``` # 过滤进程中的java程序 [root@localhost ~]# ps -ef | grep java # 过滤/etc/passwd包含用户jiahui的行 [root@localhost ~]# cat /etc/passwd | grep jiahui # 从ifconfig中过滤包含192.168的行 [root@localhost ~]# ifconfig | grep 192.168 ``` 等等这些都是我们常用到的grep过滤 --- ### awk:擅长切片 我们先来了解下大概,先在网上找了一小段歌词来做演示,用空格作为分割符,来取某一列试试 ``` [root@localhost ~]# cat a.txt I'm exactly where I'm supposed to be now Gonna let the light shine on me Now I found who I am There's no way to hold it in No more hiding who I wanna be This is me ``` ``` # 以空格为分隔符,取第二列 [root@localhost ~]# awk '{print $2}' a.txt exactly let I no more is # 以空格为分隔符,取第三列 [root@localhost ~]# awk '{print $3}' a.txt where the found way hiding me ``` ### sed:擅长替换 我们一样用刚刚的测试文件试下 ``` # 将文件里的" I "改为" You " (修改文件内容) [root@localhost ~]# sed -i 's/ I / You /g' a.txt [root@localhost ~]# cat a.txt I'm exactly where I'm supposed to be now Gonna let the light shine on me Now You found who You am There's no way to hold it in No more hiding who You wanna be This is me # 将文件输出打印,第四行到最后一行删掉(不修改文件内容) [root@localhost ~]# sed '4,$d' a.txt I'm exactly where I'm supposed to be now Gonna let the light shine on me Now You found who You am # 删除包含This开头的行(修改文件内容) [root@localhost ~]# sed -i '/This/d' a.txt [root@localhost ~]# cat a.txt I'm exactly where I'm supposed to be now Gonna let the light shine on me Now You found who You am There's no way to hold it in No more hiding who You wanna be ``` 这就是Linux三剑客的强大之处,熟练这三个命令,你将拥有批量操作文件的“超能力”,如果Linux失去了这三个命令,那Linux会变得没有什么意义,好好感受一下吧~~ 感兴趣的同学可以先看下我半年前写过的脚本,虽然后面多次修复脚本的一些多系统兼容性问题,但里面值得初学者看的就是里面在Linux三剑客的应用 >>>链接:[CentOS 初始化脚本](https://www.cloudhy.cn/article/25 "CentOS 初始化脚本")