博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux sed
阅读量:6031 次
发布时间:2019-06-20

本文共 1316 字,大约阅读时间需要 4 分钟。

原始文件的内容:

代码如下:
[root@localhost ~]# cat file.txt
hello world
a:b:c -h -n
a:b:c -h -n

sed根据条件删除相关的行:

代码如下:
[root@localhost ~]# sed -i '/a:b:c -h -n/d' file.txt
[root@localhost ~]# cat file.txt
hello world

sed根据条件进行相关内容的替换:

代码如下:
[root@localhost ~]# sed -i 's/hello/baidu/' file.sh
[root@localhost ~]# cat file.sh
baidu world

 

二、sed简介

sed:是一个编辑器,是一个强大的文件处理工具。

sed作用:用来替换、删除,更新文件中的内容。sed能自动处理一个或多个文件。

sed原理:sed以文本的行为单位进行处理,一次处理一行内容。首先sed把当前处理的行存储在临时缓冲区中(称为模式空间pattern space),接着处理缓冲区中的行,处理完成后,把缓冲区的内容送往屏幕。sed处理完一行就将其从临时缓冲区删除,然后将下一行读入,进行处理和显示,这样不断的重复,直到文件末尾。处理完文件的最后一行后,sed便结束运行。

因为sed是对文件中每行在临时缓冲区中的副本进行编辑,所以原文件内容并没有改变,除非重定向输出。

三、sed命令介绍

#sed [-nefri][命令]

参数说明:

-i:直接修改文件,终端不输出结果。

-n:使用安静(slient)模式,取消默认输出。sed默认会将所有来自stdin的数据输出到终端上。但如果加上-n参数后,不自动打印处理后的结果,只是默默的处理,只有经过sed特殊处理的那一行才被列出来。

-e: --expression直接在命令模式上进行sed的动作编辑。sed -e '...' -e '...' -e '...'

-f:指定sed脚本的文件名。

-r:sed动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

命令说明:[n1][n2]命令

n1,n2:表示行号,该参数可选,一般表示希望操作的行数,可以是数字,正则表达式或二者混合。

用逗号分隔的两个行数表示这两行为起止的行的范围。如1,3表示1,2,3行,美元符号($)表示最后一行。如何没有指定地址,sed将处理输入文件的所有行。地址通常的写法有:n;n,m;n,$。举例,如果我的操作是需要在3到5行之间进行的,则【3,5,[动作行为]】。

命令:

a:新增,在当前行的下一行追加一行文本。

i:插入,在当前行的上一行插入一行文本。

c:替换,以行为单位进行替换,c的后面可以跟字符串,用这些字符串取代n1,n2之间的行。

d:删除,从模式空间删除一行。

p:打印,打印模式空间的行。通常p会与参数【-n】一起使用。

s:替换,通常s命令可以搭配正则表达式!例如1,20s/old/new/g。

http://www.cnblogs.com/starof/p/4181985.html

 

你可能感兴趣的文章
51Nod 1003 阶乘后面0的数量(数学,思维题)
查看>>
Sublime text3中配置Github
查看>>
Getting Started with iOS Development Part10:Customizing your Mobile target's Splash screen
查看>>
asp.net C# MVC 提交表单后清空表单
查看>>
备份软件 FreeFileSync 怎么用
查看>>
Asp.net,C# 加密解密字符串
查看>>
网页视频播放器插件源码
查看>>
CentOS7 睡眠 休眠 关机 电源
查看>>
SqlServer里DateTime转字符串
查看>>
2019-4-23 plan
查看>>
固定弹层叉掉
查看>>
[编解码] 关于base64编码的原理及实现
查看>>
2015/6/1站立会议(补发)
查看>>
WinDbg配置和使用基础
查看>>
Realm数据库使用
查看>>
JDK7,JDK8 - 下载地址
查看>>
Mybatis使用接口开发
查看>>
《批量下载音乐文件》 requests 网页请求模块
查看>>
转:Object-Runtime的基本数据类型
查看>>
JMJS系统总结系列----Jquery分页扩展库(五)
查看>>