Linux 三剑客(grep awk sed)常用操作笔记
由于被疫情打乱更博节奏,已经好久没有更新博客了,今天来一发笔记,记录一下 linux 三剑客的常用操作。所谓的三剑客,其实就是 grep
awk
sed
三个命令,在 linux 操作中,特别是关于文本的查找和修改,这三条命令可谓是各显神通。
三个命令的一般性作用:
- grep:基于正则表达式查找满足条件的行
- awk:根据定位到的数据行处理其中的分段,也就是切片
- sed:根据定位到的数据行修改数据
sed 命令常用操作
sed 命令的匹配是以行为单位的,这个概念很重要。
直接上测试文件 file.conf,内容如下:
bookbookbookbook
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
bookbook
简单替换(只替换每个匹配行的首次匹配项)
sed 's/book/good/' file.conf
结果如下:
goodbookbookbook
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
goodbook
可以看到只将每个匹配到的行的第一次匹配到的 book 并替换成了 good
精确替换
上面的替换虽然可以做到将book替换成新的内容,但是有时候我们可能需要对某个单词进行替换,而不能替换包含这个单词的单词,就比如上面的内容,假如现在要将 bookbook 替换成 newbook ,先看看使用上面的替换方式结果如何
sed 's/bookbook/newword/' file.conf
结果如下
newwordbookbook
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
newword
可以看到,第一行和最后一行都被替换了,而实际上,我们只想替换 bookbook ,也即是需要精确匹配,而不是现在的模糊匹配,这时候可以用下面的方式进行替换:
sed 's/\<bookbook\>/newword/' file.conf
结果如下
bookbookbookbook
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
newword
正则替换
正则替换其实也跟普通的替换一样的语法格式,只不过匹配项和替换项都是用的正则表达式而已
sed 's/\(xyz\)\(.*\)\(lmn\)/\1 1234567 \3/g' file.conf
结果如下:
bookbookbookbook
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz 1234567 lmn
bookbook
可以看到上面首先将匹配项使用正则拆分成了3部分,然后在替换项的内容中引用了第1和第3部分,并拼接成了新的替换项,这种操作也是文件修改中非常常用的一种用法。
指定替换起点(从匹配的所以行的指定匹配次数开始替换)
sed 's/book/good/2g' file.conf
结果如下:
bookgoodgoodgood
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
bookgood
可以看到,这里是从每个匹配到的行的第2次匹配结果开始替换的,所有每行第一个匹配结果并不会替换
全部替换(替换所有匹配行的匹配项)
sed 's/book/good/g' file.conf
结果如下:
goodgoodgoodgood
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
goodgood
替换匹配行整行内容(将匹配的整行内容替换,支持多行)
sed '/book/c newtext' file.conf
结果如下:
newtext
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
newtext
可以看到,这里是将匹配到的行的整个内容都替换成了指定内容,这种用法也很常见,比如我们对于这个文件需要将url的地址更换掉,可以执行如下命令即可:
sed '/url=/c url=https://tendcode.com' file.conf
删除匹配行
顾名思义,直接删除掉匹配到的所有行
sed '/book/d' file.conf
结果如下:
name=jack
ip=127.0.0.1
url=https://abc.xxxxx.com
xyz showowof3442 lmn
版权声明:如无特殊说明,文章均为本站原创,转载请注明出处 本文链接:https://tendcode.com/article/grep-awk-sed/ 许可协议:署名-非商业性使用 4.0 国际许可协议
相关文章
- PyTorch正式加入Linux基金会,Linux基金会多了一把「瑞士军刀」?
- Linux网络监控:精准收集与实时分析(linux网络监控工具)
- Linux下安装Redis服务器的指南(linux安装redis)
- 硬盘Linux 下格式化硬盘:操作指南(linux下格式化)
- Linux自动挂载分区:让操作更便捷!(linux自动挂载分区)
- Linux查看用户组:简易指南(linux查看用户组)
- Linux中的目录操作函数详解(linux目录操作函数)
- 安装Linux系统:Dell服务器R730的操作指南(r730安装linux)
- 使用SSH操作Linux服务器:必备技能(ssh操作linux)
- Linux 外网映射:让您轻松接入远程世界(linux外网映射)
- Linux环境下安装搭建JIRA教程(linux搭建jira)
- Linux虚拟空间:服务无限扩展可能(linux虚拟空间)
- Linux下快速完成批量重命名操作(批量重命名linux)
- 【操作指南】关闭Linux系统的防火墙(关闭linux的防火墙)
- Linux防火墙iptables学习笔记(四)iptables实现NAT
- Linux网络配置教程:快速连接VPN的方法(linux如何连接vpn)
- 快速修改Linux的host文件,提升网络稳定性和速度(linux的host修改)
- 使用JVM在Linux系统中执行多线程操作(jvm线程linux)
- 「模拟Linux操作系统实践,体验更流畅的开发」(linux操作系统模拟器)
- Linux下操作日期的命令介绍(linux日期命令)
- Linux系统中操作日志记录技巧(linux记录操作日志)
- 掌握Linux文件编辑:简单易懂的操作技巧(linux文件编辑)
- Linux操作清空硬盘的技巧(linux 清空 磁盘)
- Linux实验:开启无线空间新旅程(linux 的实验报告)
- 探索Linux电视的魅力:TCL带来全新视觉享受(linux电视tcl)
- Linux下创建空文件的简易操作(linux创建空文件)
- Linux 操作入门:踏上Linux之旅(linux 怎么操作)
- Linux 域名解析:解锁服务器IP的绝招(linux域名解析ip)