sed命令基础
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作;编写转换程序等。
一些基础练习见sed命令基础2
用法:
sed [option] script inputfile
常用的option:
-n:不输出模式空间的内容到屏幕
-e:多点编辑
-f /path/script_file:从指定文件中读取编辑脚本
-r:支持使用扩展的正则表达式
-i[.bak] [备份文件并]原处编辑
script:
地址定界;命令
常用命令:
d:删除模式空间的行并立即启动下一轮循环
p:打印当前模式空间的内容,并追加到默认输出之后
a[\]text:在指定行后面追加文本支持使用\n进行多行追加
i[\]text:在行前插入文本
c[\]text:替换行为单行或多行文本
w /path/file/:保存模式空间匹配的行至指定文件
r /path/file:读取指定文件的文本至模式空间中匹配到的行后
=:为模式空间中的行打印行号
!:模式空间中匹配行取反处理
地址定界:
- 如果不给地址,则对全文逐行进行处理
- 单地址:
/pattern/:被此处模式匹配的每一行(关键字,正则)
3. 地址范围:
N,M:指定处理从N行到M行
N,+M:指定处理从N行到N+M行
/pat1/,/pat2/:指定处理从有第一个/pat1/到第二个/pat2/的行
N,/pat1/:指定处理从N行到匹配/pat1/的行
4. ~:步进处理
1~2:处理奇数行
2~2:处理偶数行
查找替换模式:
s/匹配内容/替换内容/[g|p|w]
支持替换,支持使用其他分隔符,如:s@@@ s###等
替换标记:
g:行内全局替换
p:显示替换成功的行
w /path/file:将替换成功的行保存到文件
接下来我们举例说明使用方法:
在我们下列的演示中,只要不加-i选项,都只是将修改的数据打印咋屏幕上,并不是直接修改源文件
删除某行
sed "3,5d" /etc/passwd
sed "\$d" /etc/passwd
sed "1~2d" /etc/passwd
显示某行
sed -n "2,5p" /etc/passwd
sed -n -e "3,/root/=" -e "3,/root/p" /etc/passwd
sed -n "/root/,5p" /etc/passwd
添加某行
sed '/root/a\superman' /etc/passwd行后
sed '/root/i\superman' /etc/passwd 行前
sed "1,3a\HELLO" /etc/passwd
替换某行
sed '/root/c\superman' /etc/passwd 代替行
sed '/root/c\superman\nHello\nChinese' /etc/passwd
替换一行的某一部分
sed "1,20s/root/HEHEHE/g" /etc/passwd
sed -n "/nologin/s/nologin/READ/gp" /etc/passwd
sed命令基础的更多相关文章
- sed命令基础2
我在sed命令基础里面说了一下sed的基础用法,sed还有一些高级用法,由于我也是在学习中,写的博客可能会有想不到的地方,有问题希望大家指出. sed的高级用法主要在于两个空间的使用,模式空间和保持空 ...
- Sed命令基础操作
sed用法的小技巧 (1)在查找范围时不需要用到替换,所以不用s; (2)当只需要打印被修改行时,可以使用-n 和 –p 选项,注意二者一定配合使用: 3种方式指定命令行上的多重指令 (1)用逗号分隔 ...
- Linux安全基础:sed命令的使用
sed 是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作. Sed本质上是一个编辑器,但是它是非交互式的,这点与VIM不同:同时 ...
- [shell基础]——sed命令
关于sed sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...
- Linux shell基础(五)sed命令
一.sed命令 sed是一种强大的流式编辑器 (stream editor for filtering and transforming text),它能够完美的使用正则表达式,逐行处理文本并把结果显 ...
- 『忘了再学』Shell基础 — 30、sed命令的使用
目录 1.sed命令说明 2.行数据操作 (1)查看文件中的数据 (2)删除文件中的数据 (3)向文件中追加数据 (4)向文件中插入数据 (5)修改文件中的多行数据(删除,追加,插入) (6)替换文件 ...
- Linux实战教学笔记04:Linux命令基础
第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...
- linux sed命令详解
简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的 ...
- sed命令
sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换.删除.新增.选取等特定工作,下面先了解一下sed的用法sed命令行格式为: sed ...
随机推荐
- javascript如何创建一个换行节点
换行节点和其他节点的创建方式一样,使用document.createElement("br");创建节点, 并使用parentNode.appendChild()将节点插入到相应的 ...
- Objective-C写出Json文件(可作配置文件)
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #008f00 } span. ...
- 在 Android 中如何优雅地配置私密信息
在实际的项目开发中,经常会用到一些第三方的 SDK ,而使用这些 SDK 基本上都是需要配置 APPKEY 或 APPSECRET 等信息.此外 APP 打包时需要 KEYSTORE , STOREP ...
- dnf命令 (常用总结)
DNF是新一代的rpm软件包管理器.他首先出现在 Fedora 18 这个发行版中.而最近,它取代了yum,正式成为 Fedora 22 的包管理器. DNF包管理器克服了YUM包管理器的一些瓶颈,提 ...
- Python 中的重点来了 : 迭代器 生成器
可迭代的对象:带有__iter__方法的,就是迭代器.字符串,列表,元祖,字典,集合,文件,都是可迭代的 可迭代的对象使用了__iter__方法的,就是迭代器,带有__next__,__iter__方 ...
- WeQuant交易策略—RSI
RSI指标策略 策略介绍 RSI(相对强弱指标),是通过一段时期内的平均收盘上涨和下跌数,计算价格上涨所产生的波动占整个波动的百分比,来分析市场买卖盘的意向和实力. 计算公式(以日为单位举例) RSI ...
- STL之关联容器---set, mutilset, map, mutilmap
STL的容器分为序列容器和关联容器.它们所表达的数据结构各有不同: 序列容器:vector(变长数组), list(链表), queue(队列), heap(堆算法)等 关联容器:set/mutils ...
- Struts2拦截器配置实例
拦截器介绍 拦截器 的使用 ,源自Spring AOP(面向切面编程)思想 拦截器 采用 责任链 模式 * 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链. * 责任链每一个节 ...
- v-cloak 实现vue实例未编译完前不显示
前言: 由于网速原因,(ps:之前同事无意间在网速很差的情况下测出的)在使用vue开发时,会由于vue实例还没编译成功的时候数据绑定的"Mustache"标签会闪现一下,造成不好的 ...
- centos 7 最小安装后 安装FTP服务器 vsftp
1.首先查看下 系统配置 rpm -q ftp #肯定是没安装, 2.安装 vsftpd yum -y vsftpd 3.vim /etc/vsftpd/vsftpd.conf anonymous_e ...