一、sed简介
sed是一种流编编器,它是文本处理中非常中的工具,能够完美的配合正则表达式便用,功物能不同凡响。
处理时,把当前处理的行存储在临时缓冲区中,称为”模式空间”( oattern space),接看用sed命令处理缓冲区中的内容,处理成后,把缓冲区的内容送往屏幕显示。
接着理下一行,这样不断重复,直到文件末。文件内容没有改改变,除非使用了写入的命令,将内容更新。
定址用于决定对哪些行进行编辑。地址的形式可以是数字、正则表达式、或二者的结合。如果没有指定地址,sed将处理输入文件的所有行。
 
二、sed命令功能
命令  功能
a\  在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
c\  用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用"\"续行
i\  在当前行之前插入文本。多行时除最后一行外,每行末尾需用"\"续行
d   删除行
h   把模式空间里的内容复制到暂存缓冲区
H   把模式空间里的内容追加到暂存缓冲区
g   把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
G   把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面
l   列出非打印字符
p   打印行
n   读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理
q   结束或退出sed
r   从文件中读取输入行
!   对所选行以外的所有行应用命令
s   用一个字符串替换另一个
g   在行内进行全局替换
w   将所选的行写入文件
x   交换暂存缓冲区与模式空间的内容
y   将字符替换为另一字符(不能对正则表达式使用y命令)
 
三、sed常见命令参数
p:print
d:delete
=:打印匹配行的行号
-n 取消默认的完整输出,只要需要的  
-e 允许多项编辑
-i 修改文件内容
-r 不需要转义
 
四、举例sed常见用法
源文件如下:
1、只打印第三行文字
sed -n '3p' 123.txt
 
2、只查看文件的第3行到第9行
sed -n '3,9p' 123.txt
 
3、过滤特定字符串,显示正行内容
sed -n '/222/p' 123.txt
 
4、打印1-5行,并显示行号
sed -n -e '1,5p' -e '='   123.txt
 
5、仅仅显示匹配字符串的行号
sed -n '/5555/=' 123.txt
 
6、将‘1111’替换为‘1111第一行’
sed 's/1111111/11111第一行/g' 123.txt
注:-i命令才会真实生效
sed -i 's#222#222第二行#g' 123.txt
 
7、打印最后一行
sed -n  '$p' 123.txt
 
8、在文件第一行添加start,文件结尾添加over
界面现实:sed -e '1i start' -e '$a over' 123.txt
真实写入:
sed -i -e  '1i start' -e '$a over' 123.txt
 
9、在文件第一行和第四行的每行下面添加helloworld
sed '1,4i helloworld' 123.txt
 
 
10、& 符号在sed命令中代表上次匹配的结果
sed 's/第二行/已经不是&/g' 123.txt
 
11、删除第3到第9行,只是不显示而已
sed '3,9d' 123.txt
 
12、删除包含"start"的行到包含"999"的行之间的行
sed '/start/,'/999'/d' 123.txt
 
13、-e是编辑命令,用于多个编辑任务
打印1到2行的内容,并匹配‘第二行替换为'我是第三行了'
sed -e '1,2d' -e 's/第二行/我是第一行了/g' 123.txt
 
 
14、-r命令是读命令。sed使用该命令将一个文本文件中的内容加到当前文件的特定位置上
sed '/3333/ r test002.txt' 123.txt
【123.ltxt  匹配root后读入test002.txt的内容(helloworld123:)在匹配内容之下,仅显示用】
 
15、-w是写入命令
将【123.txt匹配root后写入test002.txt',真实写入,,添加-n参数后,不打印源文件】
sed '/第二行/ w test002.txt' 123.txt
 
16、sed的正则匹配
正则匹配IP和子网掩码
ifconfig | sed -n '2p'
ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'(提取ID地址)
find . -name "*.txt" | xargs sed -i 's/第二行/第三行/g'(配合find命令使用:查找并替换)
 
 

Liunx常用操作(八)-sed命令详细说明的更多相关文章

  1. Liunx常用操作(一)-删除命令

    在linux命令行模式下,如何一次性快速删除一行刚刚输入的命令? 经常在命令行输入命令的时候,一段文字都需要删除,一个字段一个字段,比较耗费时间 以下提供一些命令,配合在一起操作,可以一定程度提高工作 ...

  2. python anaconda 常用操作;conda 命令指南

    在使用 python anaconda时,经常会用到很多常用操作,记录下来,方便以后更好地使用: conda: Conda既是一个包管理器又是一个环境管理器.你肯定知道包管理器,它可以帮你发现和查看包 ...

  3. Liunx常用操作(二)-vim中删除命令

    VIM简介 Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.VIM是自由软件.Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Ema ...

  4. Liunx常用的100条命令汇存

    1.关机 shutdown -h now 立刻关机 poweroff shutdown -r now 立刻重启 reboot logout 注销 2.进入图形界面 startx 3.vi编辑器 [vi ...

  5. Python脚本控制的WebDriver 常用操作 <八> 简单的对象定位

    这一部分的内容,将是在WebDriver中,定位元素方法的演示,是将Selenium中Selenese元素定位命令的WebDriver中使用方法的结合 Selenium中元素定位方法复习可以参考: & ...

  6. Shell的常用十八条命令

    Shell的18条常用命令整理 1. ls: 类似于dos下的dir命令 ls最常用的参数有三个: -a -l -F. ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看 ...

  7. liunx 常用操作(自用)

    Centos7解压文件 tar -zxvf 文件名[test.tar.gz] Centos7安装vim yum -y install vim* Centos7安装ifconfig yum instal ...

  8. Liunx常用操作(五)-如何查询文档中的冒号与引号

    liunx下面有如下一段包含json格式的文档 一.单查所有冒号: .txt | grep [:] 结果如下: 二.单查所有引号: 这里需要转义 .txt | grep [\"] 三.gre ...

  9. MySql常用操作【基础且详细(●'◡'●)】

    有那么挺长段时间没有敲代码了,今敲起来竟然有些sql都想不起来了

  10. 文本处理sed常用操作

    文本处理sed常用操作 linux sed (stream editor) is a Unix utility that parses and transforms text, using a sim ...

随机推荐

  1. Python——Html(表格<table>, <tr>,<td>,<th>、表单<form>、自定义标签<div>和<span>)

    一.表格<table>, <tr>,<td>或<th> <table> 元素是 HTML 中用于创建表格的主要标记.表格是一种用于展示数据的 ...

  2. 如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码

    最好的中文TTS项目Bert-vits2更新了中文特化分支,但可能由于时间仓促,代码中存在不少的bug,作为普通用户,有的时候也想为自己喜欢的开源项目做一点点贡献,帮助作者修改一些简单的bug,那么该 ...

  3. Android学习--ListView和Tab

    产生一个ListView 其中包含很多items,第一个item启动另一个实现了Tab的Activity. 关于tab的使用方式,参见下面blog http://oldshark.blog.163.c ...

  4. <Python全景系列-1> Hello World,1分钟配置好你的python环境

    <从此开始:1分钟配置好你的python环境> 欢迎来到我们的系列博客<Python360全景>!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题, ...

  5. Provider 四种消费者

    Provider.of Provider.of 方法是 Provider 库中最常用的获取共享数据的方法之一.它接收一个 BuildContext 对象和一个泛型类型参数 T,会查找 Widget 树 ...

  6. C++中自定义结构体或类作为关联容器的键

    目录 1. 概述 2. 实例 1. 概述 STL中像set和map这样的容器是通过红黑树来实现的,插入到容器中的对象是顺序存放的,采用这样的方式是非常便于查找的,查找效率能够达到O(log n).所以 ...

  7. 干掉PPT!现场编码的职级晋升答辩你参加过么?

    摘要:研发讲究的是真本事,是骡子是马咱们还得代码上见真章. 最近这小半年的时间,凭借对各种API的巧妙应用,我从一个差点被淘汰的"前浪"变成了公司人人尊敬的技术委员会副主席,工作思 ...

  8. vue2升级vue3:composition api中监听路由参数改变

    vue2 的watch回顾 我们先回顾一下vue2中watch <watch性能优化:vue watch对象键值说明-immediate属性详解> <vue中methods/watc ...

  9. 数据治理如何做?火山引擎DataLeap帮助这款产品3个月降低计算成本20%

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 本文讲述字节跳动一款 App 产品的数据治理故事.该产品随着用户体量和数据体量不断增长,数仓的任务量.数据量也不断 ...

  10. Jenkins + SVN

    安装插件 Localization: Chinese (Simplified) Subversion 配置国内源 http://mirror.tuna.tsinghua.edu.cn/jenkins/ ...