shell脚本--sed

振鹭2年前技术文章824

sed后面接的动作,务必以 '........'两个单引号包住

1.擅长对文件进行操作处理

2.对文件信息进行内容的信息修改

-i 参数代表直接修改原文件


  • a :往后新增一行, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)

在文件的第四行后添加一行
sed '4a newLine' filename
如果要新增多行,例如在第四行后面增加两行字
sed '4a newline1\
newline2' filename


  • i :往前插入一行, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

在文件的第二行前添加一行
sed '2i new line' filename


  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行

将2到5行替换为一行No 2-5 number
sed '2,5c No 2-5 number' filename


  • d :删除,因为是删除,所以 d 后面通常不接任何东西;

删除2到5行
sed '2,5d' filename
只删除第二行
sed '2d' filename
删除第三行到最后一行
sed '3,$d' filename
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~

数据的搜寻并显示:
输出打印含有abc的行
sed -n '/abc/p' filename
数据的搜寻并删除:
删除所有包含oo的行
sed  '/oo/d' filename
数据的搜寻并执行命令:
搜索 testfile,找到 oo 对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把 oo 替换为 kk,再输出这行:
sed '/oo/{s/oo/kk;p;q}' filename


  • s :取代,可以直接进行取代,通常这个 s 的动作可以搭配正则表达式,例如 's/old/new/g' 

数据的查找与替换
将 testfile 文件中每行第一次出现的 oo 用字符串 kk 替换,然后将该文件内容输出到标准输出
sed -e 's/oo/kk/' testfile
g 标识符表示全局查找替换,使 sed 对文件中所有符合的字符串都被替换,修改后内容会到标准输出,不会修改原文件:
sed -e 's/oo/kk/g' testfile
选项 i 使 sed 修改文件:
sed -i 's/oo/kk/g' testfile


返回列表

上一篇:PromQL语法

下一篇:Hudi集成Spark

相关文章

Trino开启ldap认证

Trino开启ldap认证

1、背景由于对于安全监管的要求,需要对trino服务开启安全认证体系。2、基于私有证书的httpskeytool -genkeypair -validity 36500 -ext SAN=IP:172...

HBase HBCK运维指南

HBase HBCK运维指南

HBase HBCK是HBase运维人员经常会用到的一个HBase运维工具,主要是用于检查 HBase region等元数据一致性以及修复的工具。目前HBCK工具有两个版本,本次主要介绍用于HBase...

kubernetes dashboard

kubernetes dashboard

1、背景Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。你可...

python-序列化和反序列化

1、为什么要序列化内存中的字典、列表、集合以及各种对象,如何保存到一个文件中?如果是自己定义的类的实例,如何保存到一个文件中?如何从文件中读取数据,并让它们在内存中再次恢复成自己对应的类的实例?要设计...

oracle安装实例的响应文件模板解析

位置在:db解压目录下database/response/dbca.rsp###############################################################...

DBMS_SESSION包跟踪10046

注意:DBMS_SESSION包:只能跟踪当前会话,不能指定会话DBMS_SESSION.SET_SQL_TRACE=ALTER SESSION SET SQL_TRACE; =ALTER SESSI...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。