面试linux中sed的用法,linux中sed命令的使用与注意小结
前言
sed是一种流编辑器,它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为『模式空间』(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。
sed的用法
$ sed [-nefr] [动作]
参数:
-n : 使用安静模式。在一般sed用法中,所有来自STDIN的数据一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者操作)才会被列出来。
-e : 直接在命令行模式上进行sed的动作编辑。(默认)
-f : 直接将sed的动作写在一个文件内, -f filename则可以执行filename内的sed动作。
-r : sed的动作支持的是扩展型正则表达式的语法(默认是基础正则表达式语法)。
-i : 直接修改读取的文件内容,而不是屏幕输出。
默认情况下sed不直接作用于读取的文件中
动作说明: [n1[,n2]] function
n1,n2 : 不见得会存在,一般代表选择进行动作的行数,举例来说,如果我的动作是需要在10到20行之间进行的,则“10,20[动作行为]”。
function 有下面的这些参数:
a : 新增到下一行,后面可以接字符串
c : 替换,后面可以接字符串
d : 删除,后面不接热河参数
i : 插入到上一行,后面可接字符串
p : 打印,通常会与参数 sed -n 一起运行
s : 查找并替换特定字符串,通常搭配正则表达式。
例如,1,20s/old/new/g
演示
//假设有text文件 $ sed '2,5d' text #将第2~5行删除 $ sed '2a hahaha' text #在第二行后加上“hahaha”字样 $ sed '2a hahaha > xixixi' text #在第二行后加上两行字 $ sed '2,5c No 2-5 number' text #将第2~5行的内容替换成为“No 2-5 number”,是整行替换 $ sed -n '5,7p' text #将5~7行打印出来,一定要加 -n $ sed 's/hahaha/ssss/g' text #将hahaha字段替换成ssss,这是部分数据的查找并替换
sed还可以和正则表达式配合使用
如:
$ sed 's/^h/ssss/g' text #将h开头的字段替换成ssss
注意
sed后面接的动作,务必以两个单引号括住。
使用p(打印)参数时,sed一定要用-n,否则所有的行都会被输出,这样就没有意义了。
sed默认不直接作用于读取的文件中。
-i参数要慎用,它会直接修改读取的文件内容。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
面试linux中sed的用法,linux中sed命令的使用与注意小结相关推荐
- mysql中去重的用法_mysql中去重 distinct 用法
在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count( ...
- python中readlines函数用法,python中read() readline()以及readlines()用法
我们谈到"文本处理"时,我们通常是指处理的内容.Python 将文本文件的内容读入可以操作的字符串变量非常容易.文件对象提供了三个"读"方法: .read(). ...
- linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档
第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...
- Linux下dpkg的用法,linux中管理包的apt和dpkg命令用法
1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...
- python中path的用法,python中path的用法
如何将python的路径加到path中 方法一:函数添加 1 import sys 2 查看sys.path 3 添加sys.path.append("c:\\") 方法二:修改环 ...
- mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法
Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...
- python中max函数用法_Python中max函数用法实例分析
Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...
- python中print的用法_Python中print函数简单使用总结
Python中print函数简单使用总结 print函数是Python的入门,每一个学习python的人都绕不开这个函数,下面介绍一下这个函数的用法. 打开电脑,选择python软件,下面选择pyth ...
- python中lambda()的用法_python中lambda()的用法
在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能 ...
最新文章
- 【Qt】通过QtCreator源码学习Qt(九):容器算法总结
- BZOJ4004: [JLOI2015]装备购买
- 单片机独立式按键c语言程序,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之独立按键(查询)...
- 开始使用Spring Cloud实战微服务
- 【剑指offer】面试题58 - II:左旋转字符串(Java)
- 美团试水机器人送外卖;苹果向第三方提供 iPhone 维修零件;GoLand 2019.2.1 发布 | 极客头条...
- Got error ‘parentheses not balanced‘ from regexp
- paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
- vs工程 vcproj和开发环境定义宏
- 互联网日报 | 6月13日 星期日 | 腾讯开展“饭圈乱象”专项整治;端午档单日放映场次刷新纪录;湖北取消除武汉外落户限制...
- sqlmap注入之tamper绕过WAF防火墙过滤
- unity识别图片颜色并把颜色数量排序
- #NAME?_#NAME?
- append()方法
- 统计全年12个月数据
- 如何辨别上市公司财务造假
- PMP项目管理其他知识点
- Apache Ranger 1.1.0 用户指南
- HCIE实用性高吗?难考到什么程度?
- 《留侯论》-苏轼-古代文学