首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

sed与正则表式使用

本公众号内容大多由自己平时操作记录,如果有错误地方欢迎留言指正

sed简介

sed是一个非交互式文件编辑器,它可以对文本文件和标准输入输出进行编辑,标准输入可以来自键盘输入,文件重定向,字符串变量甚至管道等。sed从文本的一个文本行或标准输入中读取数据,将其复制到缓冲区,让后读取命令行或者脚本的第一个命令,直到命令行或者脚本执行完毕。

sed只对缓冲区中原始文件的副本进行编辑,并不对原始文件编辑,因此要保存改动的内容需要重定向到新的文件

sed命令通常由定位文本行和sed编辑命令组成,sed编辑命令对定位文本行进行各种处理sed有两种方式定位文本:

使用行号,指定一行,或者指定行号范围

使用正则表达式

常用匹配模式

常用编辑指令 :sed编辑命令对匹配模式匹配到的文本进行打印,删除,追加,插入,替换,等操作

一些使用示例

sed查找显示:1, 显示passwd 第2行

2, 显示passwd第2行到底10行

3, 显示passwd第2开始后的3行

插入和追加4, 在第3行下追加1行;按行号匹配

5, 在第3行下追加1行;按行字符串匹配

6, 在第3行前插入1行

配合正则表达式,对文件内容进行修改 (脚本中使用最多)对nginx.conf文件进行如下操作:1,将用户定义行的#号注释去掉

直接查看效果:

直接修改文件内容:

2,将worker_processes开头行定义取消,并将 work进程数改为 4

`

其他系统信息匹配方式1、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符

2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

3、在centos6系统/root/install.log每一行行首增加#号

4、在/etc/fstab文件中不以#开头的行的行首增加#号

5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

6、利用sed 取出ifconfig命令中本机的IPv4地址

7.统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个

字段的重复次数 (思路:用正则匹配全行,关键字段用分组匹配,后面引用替换)

8、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和

sed两种方法分别实现)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180428G1OX0W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券