如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令)

2023-05-16

sed是一个很好的文件处理工具,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作.(总:sed处理对象是文件,怎么处理?是以逐行处理,何种处理?替换,删除。。)
sed命令行格式为:

         sed [-nefri] ‘command’ 输入文本       

常用选项:

        -i∶直接修改读取的档案内容,而不是由萤幕输出。

        -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。

常用命令:
        a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ 如:sed '1a End' 在最后一行后再插入一行End(面试题)
        c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
        d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
         i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
         s  ∶取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

         p  ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~

举例:(假设我们有一文件名为ab)
     删除某行
     [root@localhost ruby ]# sed '1d' ab              #删除第一行 
     [root@localhost ruby] # sed '$d' ab              #删除最后一行
     [root@localhost ruby] # sed '1,2d' ab           #删除第一行到第二行
     [root@localhost ruby] # sed '2,$d' ab           #删除第二行到最后一行

显示某行
.    [root@localhost ruby]# sed -n '1p' ab           #显示第一行 
     [root@localhost ruby] # sed -n '$p' ab           #显示最后一行
     [root@localhost ruby] # sed -n '1,2p' ab        #显示第一行到第二行
     [root@localhost ruby] # sed -n '2,$p' ab        #显示第二行到最后一行


使用模式进行查询
     [root@localhost ruby] # sed -n '/ruby/p' ab    #查询包括关键字ruby所在所有行
     [root@localhost ruby] # sed -n '/\$/p' ab        #查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义

  增加一行或多行字符串
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed '1a drink tea' ab  #第一行后增加字符串"drink tea"
     Hello!
     drink tea
     ruby is me,welcome to my blog. 
     end
     [root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行后增加字符串"drink tea"
     Hello!
     drink tea
     ruby is me,welcome to my blog.
     drink tea
     end
     drink tea
     [root@localhost ruby] # sed '1a drink tea\nor coffee' ab  #第一行后增加多行,使用换行符\n
     Hello!
     drink tea
     or coffee
     ruby is me,welcome to my blog.
     end

  代替一行或多行
     [root@localhost ruby] # sed '1c Hi' ab               #第一行代替为Hi
     Hi
     ruby is me,welcome to my blog.
     end
     [root@localhost ruby] # sed '1,2c Hi' ab            #第一行到第二行代替为Hi
     Hi
     end

替换一行中的某部分
  格式:sed 's/要替换的字符串 /新的字符串 /g'   (要替换的字符串可以用正则表达式)
     [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g'    #替换ruby为bird
   [root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g'        #删除ruby

     插入
     [root@localhost ruby] # sed -i '$a bye' ab        #在文件ab中最后一行直接输入"bye"
     [root@localhost ruby]# cat ab
     Hello!
     ruby is me,welcome to my blog.
     end
     bye

总结:

1,在最后一行插入一行数据

2,查找包含莫个字符串的行,并显示出来(一般用grep,但sed也可以)

3.  删除某个字符串(文件中所有的)

4. 查找到文件中多有的特定字符,并替换!

sed处理文件对象,逐行进行!

可对文件进行“删除”    删除行:sed -i 'XXd' filename

                                  删除特定字符: sed -i 's/String//g'

       "替换"             替换行:

                              替换特定字符:

“增加”               添加行:


“选取”      sed -n 'XXX/p' filename

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令) 的相关文章

  • centos fluxbox 安装,个性化配置

    centos fluxbox 安装 个性化配置 张映 发表于 2010 12 01 分类目录 xff1a linux 我用的第一个linux系统是archlinux xff0c 当时装的桌面是fluxbox xff0c 界面简单 xff0c
  • 算数移位(<<, >>)与逻辑移位

    lt lt gt gt 是算数移位 xff0c 也就是 1 xff0c 如果右移 xff0c 则 最高位补1 左移 xff0c 则右边补0 但是uint32 t的10 00 00 00 右边移动后 xff0c 是什么 xff1f 补0呗 x
  • OCR数据集

    1 SynthText in the Wild dataset 数据集下载链接 xff1a http www robots ox ac uk vgg data scenetext 数据集介绍 xff1a 一个综合生成的数据集 xff0c 其
  • Linux(centos)下搭建confluence

    1 下载文件 2 将下载的文件放到 opt路径下 通过上图可以看出confluence安装到了 opt atlassian confluence和 var atlassian application data confluence目录下 x
  • gitlab中文社区

    1 获取gitlab中文社区项目 中文社区版项目 xff1a https gitlab com xhang gitlab 2 克隆中文仓库 git clone https gitlab com xhang gitlab git 3 查看gi
  • 阿里云 oss python3 例子

    阿里云的oss SDK又是不支持python3 xff0c 头疼头疼 本想改一改它的SDK xff0c 让它支持python2 43 python3 xff0c 无奈里面大量的代码使用不带括号的print xff0c 工作量恐怖 幸好oss
  • 【C语言课程设计】利用结构体数组实现文件内容的增删改查

    啦啦啦 xff0c 又到了学习时间 xff0c 现在给大家介绍结构体数关于文件内容的增删改查 我们先把相关代码写好 xff0c 再使用EGE xff0c 慢慢来不着急 一 文件的打开方式 假设文件名叫list txt 首先我们要建立一个文件
  • Mysql中limit的用法详解

    在我们使用查询语句的时候 xff0c 经常要返回前几条或者中间某几行数据 xff0c 这个时候怎么办呢 xff1f 不用担心 xff0c mysql已经为我们提供了这样一个功能 SELECT FROM table LIMIT offset
  • 在Windows10上安装CodeSoft 2015,系统蓝屏,解决办法

    最近公司电脑更新换代 xff0c 替换成Windows 10系统 xff0c 在安装CodeSoft 2015 标签软件时 xff0c 电脑蓝屏重启 xff0c 软件安装失败 xff0c 且无法卸载 xff0c 之后只能重装系统 在经过系统
  • Win10 WSL下 Ubuntu20.04 安装与卸载 Mysql 8.0

    一 查询并卸载旧的mysql xff08 未安装可以直接跳过 xff09 查看MySQL的依赖项 dpkg list grep mysql 关闭mysql服务 service mysql stop 自动卸载mysql xff08 包括ser
  • ios性能优化实践

    本文将从原理出发 xff0c 解释卡顿发生的原理 xff0c 然后会讲解项目中行之有效的几个优化点 xff0c 最后会展望一下接下来将要尝试的方向 下面进入正题 屏幕显示的原理 基本原理 屏幕显示原理 我们知道 xff0c 远古时代的CRT
  • MATLAB平面几何图形绘制实例

    MATLAB 平面几何图形绘制实例 实例一 运动控制测试图形 以下图形用于运动综合测试 xff0c 平面图形包含直线 圆弧 整圆 锐拐角 钝拐角 xff0c 能比较充分的测试各种轨迹 运动控制性能 输入圆心和半径可以调整图形大小和偏移 xf
  • Liunx系统ifconfig无法显示ip地址

    1 针对于Liunx的CentOS8 5系统 2 查看NetworkManager网络状态 nmcli n enabled设置下次开机时 xff0c 后面接的 unit 会被启动 开启NetworkManager网络 nmcli n on
  • CentOS8安装MySQL8.0版本遇到的问题

    41 错误1 xff1a libncurses so 5 64bit is needed by MySQL client 5 6 47 1 el6 x86 64以及 libtinfo so 5 64bit is needed by MySQ
  • LiunxCentOS8系统配置yum源

    更新yum源的原因如下 xff1a 因为LiunxCentOS8系统里面停止维护了 xff0c 导致yum无法使用必须自己配置一个yum源 如使用CentOS8系统自带的yum源进行下载安装则会出现以下错误 xff1a 错误 xff1a F
  • redis主从复制

    什么是redis主从复制 redis主从复制是指在redis集群中master节点和slave节点数据同步的机制 将写入redis服务器的数据复制到其他redis服务器里面实现数据同步 master节点负责写操作 xff0c slave节点
  • 单机千万并发连接实战

    c10k xff0c c100k xff0c c1000k等问题大家都已经司空见惯 xff0c 那么10m xff08 千万 xff09 并发连接呢 xff1f 今天就来一起挑战一下吧 准备机器 10m连接 xff0c 大家的个人电脑肯定无
  • mysql数据库dblink的使用

    1 使用mysql数据库里面的FEDERATED引擎 xff0c 这个必须要开启 show engines 我这里是开启了FEDERATED引擎 2 开启FEDERATED引擎 sed i 39 afederated 39 etc my c
  • CentOS8系统安装MySQL过程中遇到的错误问题

    1 启动过程中出现类似于 单元启动失败 错误 解决 xff1a 把之前初始化成功的文件删除掉 var lib mysql 这个文件 注 xff1a 如不想删除则可以备份起来 这是初始化之后生成的文件 1 再次初始化生成文件 mysqld i
  • Liunx系统CentOS Linux release 8.5.2111安装percona-toolkit

    官网 xff1a https www percona com downloads percona toolkit LATEST 依赖 xff1a yum install perl DBI perl DBD MySQL perl Time H

随机推荐

  • MySQL物理备份工具-xtrabackup

    依赖包 xff1a wget O etc yum repos d epel repo http mirrors aliyun com repo epel 7 repo yum y install perl perl devel libaio
  • 传输线与特性阻抗

    一 什么是传输线 我们经常会用到传输线这一术语 xff0c 可是讲到其具体定义时 xff0c 很多工程师都是欲言又止 xff0c 似懂非懂 我们知道 xff0c 传输线用于将信号从一端传输到另一端 xff0c 下图说明了所有传输线的一般特征
  • 51单片机中断号与定时器的工作方式

    中 断 号 interrupt 0 外部中断0 xff08 EX0 xff09 interrupt 1 定时器 计时器器中断0 xff08 ET0 xff09 interrupt 2 外部中断1 xff08 EX1 xff09 interr
  • delay函数

    在VC中使用带上头文件 include lt windows h gt 注意 在VC中Sleep中的第一个英文字符为大写的 34 S 34 在标准C中是sleep 不要大写 下面使用大写的来说明 具体用什么看你用什么编译器 简单的说VC用S
  • 51单片机的中断和定时(全面)

    定时器 计数器 51的定时器 计数器有2个分别是T1和T0 52系列的单片机有3个定时器 计数器 xff0c T0和T1是通用定时器 计数器 xff0c 定时器 计数器2 xff08 简称T2 xff09 是集定时 计数和捕获三种功能于一体
  • 什么是信号完整性?(大白话)

    什么是 信号完整性 xff1f 可能很多人仍然感觉这个词很陌生 xff0c 尤其是哪些没有接触过所谓高速PCB的工程师来说更是如此 于博士网就给大家做一个直观的说明 我们在用示波器测量PCB板上信号时 xff0c 经常会在信号的波形上发现一
  • 什么是高速PCB?

    高速PCB是一个很流行的名词 xff0c 那么到底什么是高速PCB xff1f 可能没几个人能说清楚 xff0c 原因在哪 xff1f 于博士网阐述一下我们对高速PCB这一名词的见解 有一种观点认为 xff1a 数字电路的速率达到或者超过4
  • epoll LT/ET 深入剖析

    epoll LT ET 深入剖析 EPOLL事件有两种模型 xff1a Level Triggered LT 水平触发 socket接收缓冲区不为空 有数据可读 读事件一直触发 socket发送缓冲区不满 可以继续写入数据 写事件一直触发
  • PCB布局布线1

    1 1mil 61 0 001inch 61 0 0254mm oz质量单位 xff0c 指铜厚 2 层叠结构 1 走线长度 宽度 厚度影响寄生电容电感 2 电源层和地层都比较厚 xff1a a 屏蔽辐射干扰 串扰b 减小阻抗3 3 走线电
  • 大功率连接器(电源和信号)

    EXtreme Power连接器 xff08 7 5mm xff09
  • Altium Designer高级布线技巧

    1 模块化复用 选择两个或多个元件 右击 union 联合 创建联合 选择模块 M O键 输入角度 点击模块 2 同一模块在不同工程中布局布线复用
  • 02.算术左移逻辑左移,算术右移逻辑右移

    xfeff xfeff 1 算术左移逻辑左移 算 术左移和逻辑左移一样都是右边补0 xff1a 比如 00101011 算术左移一位 01010110 逻辑左移一位 01010110 对于二进制的数值来说左移n位等于原来的数值乘以2的n次方
  • Bellman-Ford(单源最短路径,判断是否有负权环路)

    Bellman Ford 1 初始化 xff1a 将除源点外的所有顶点的最短距离估计值 d v 43 d s 0 2 迭代求解 xff1a 反复对边集E中的每条边进行松弛操作 xff0c 使得顶点集V中的每个顶点v的最短距离估计值逐步逼近其
  • C语言第一个程序(超详细)

    include lt stdio h gt 包含一个叫stdio h的文件 std 标准 standard input output int main int 是整型的意思 main前面的int表示main函数调用返回一个整型值 inclu
  • warning:initialization discards ‘const’ qualifier from pointer target type 解决方法

    initialization discards const qualifier from pointer target type 意思是 xff0c 初始化时丢掉了 xff08 目标类型的 xff09 const 限定符 eg const
  • [C/C++]写出几个无限循环

    1 写出几个死循环 while 1 注 xff1a 1不可省略 for 注 xff1a 第一个条件为初始条件 xff0c 第二个条件是循环结束条件 xff0c 第三个表达式是变更表达式 循环结束条件若是省略的话 xff0c 应写入循环体中
  • 数据结构之队列

    一 链式队列 数据结构 xff1a 两个指向节点的指针front rear 当链队为空时 xff0c front和rear都指向头节点 因此出队时 xff0c 删除队尾节点时要注意 xff01 link queue h 1 typedef
  • 二叉树

    1 二叉树节点的创建 xff08 初始化 xff09 tree c include lt stdlib h gt include 34 tree h 34 struct tree node tree node create data t d
  • 单机千万并发连接实战(修订版)

    c10k xff0c c100k xff0c c1000k等问题大家都已经司空见惯 xff0c 那么10m xff08 千万 xff09 并发连接呢 xff1f 今天就来一起挑战一下 下面我们使用handy库自带的例子程序 xff0c 来跑
  • 如何替换某文件中的所有的特定字符?---linux sed命令(文本编辑命令)

    sed是一个很好的文件处理工具 xff0c 主要是以行为单位进行处理 xff0c 可以将数据行进行替换 删除 新增 选取等特定工作 总 xff1a sed处理对象是文件 xff0c 怎么处理 xff1f 是以逐行处理 xff0c 何种处理