shell脚本--sed

振鹭1年前技术文章501

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

相关文章

kubernetes dashboard

kubernetes dashboard

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

PostgreSQL 命令行工具介绍

前言psql 是 PostgreSQL 自带的命令行交互客户端工具,类似于 MySQL 的 mysql -u -p 不过相当于 MySQL 的命令行工具 psql 功能更丰富些,例如单击 tab 自动...

DG概念与机制

1. 相关概念1.1 什么是DG  DG全称Data Guard,官方给出的定义是“Oracle Data Guard ensures high availability, data protecti...

impala集成ranger后无法刷新元数据

impala集成ranger后无法刷新元数据

【详细描述】impala集成ranger后无法执行invalidate metadata,报错显示没有对应权限【分析过程】daishuyun用户目前在ranger中的权限配置为:报错显示用户daish...

CPU--上下文切换

CPU--上下文切换

一、概述1、Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 ...

dbms_support包跟踪10046

系统默认没有安装dbms_support这个包,可以手动执行$ORACLE_HOME/rdbms/admin/dbmssupp.sql脚本来创建该包。安装dbms_support包: SQL>...

发表评论    

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