Linux命令总结--sed命令

2023-05-16

简介

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sed使用参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
命令  功能
a\  在当前行后添加一行或多行。多行时除最后一行外,每行末尾需用“\”续行
 
c\  用此符号后的新文本替换当前行中的文本。多行时除最后一行外,每行末尾需用"\"续行
 
i\  在当前行之前插入文本。多行时除最后一行外,每行末尾需用"\"续行
 
e      将脚本添加到要执行的命令中
 
 
h   把模式空间里的内容复制到暂存缓冲区
 
H   把模式空间里的内容追加到暂存缓冲区
 
g   把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
 
G   把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面
 
l   列出非打印字符
 
p   打印行
 
n   读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理
 
q   结束或退出 sed
 
r   从文件中读取输入行
 
!   对所选行以外的所有行应用命令
 
s   用一个字符串替换另一个
 
g   在行内进行全局替换
 
w   将所选的行写入文件
 
x   交换暂存缓冲区与模式空间的内容
 
y   将字符替换为另一字符(不能对正则表达式使用y命令)

实例:

1.只打印第三行

 
[root@hanjiali ~]# sed -n "3p" hanjialii.txt
     3  我将有大前途
[root@hanjiali ~]# cat hanjialii.txt
     1  我是个好女孩
     2  我会学好运维
     3  我将有大前途
     4  我爱我的职业
[root@hanjiali ~]# sed -n "3p" hanjialii.txt
     3  我将有大前途

  

2.只查看文件的第1行到第2行

[root@hanjiali ~]# sed -n "1,2p" hanjialii.txt
     1  我是个好女孩
     2  我会学好运维

3.过滤特定字符串,显示正行内容  

[root@hanjiali ~]# sed -n "/会/p" hanjialii.txt
     2  我会学好运维

  

 

4.显示包含"将"的行到包含"的"的行之间的行

[root@hanjiali ~]# sed -n "/将/,/的/p" hanjialii.txt
     3  我将有大前途


     4  我爱我的职业

5.打印1-3行,并显示行号

[root@hanjiali ~]# sed -n -e "1,3p" -e "=" hanjialii.txt
     1  我是个好女孩
1
     2  我会学好运维
2
     3  我将有大前途
3  
 
 

6.用I替换文件中的我【真实写入】

[root@hanjiali ~]# sed -i "s/我/I/g" hanjialii.txt
[root@hanjiali ~]# cat hanjialii.txt
     1  I是个好女孩
     2  I会学好运维
     3  I将有大前途


     4  I爱I
  

 

直接修改文件内容(危险动作)

sed 可以直接修改文件的内容,不必使用管道命令或数据流重导向! 不过,由於这个动作会直接修改到原始的文件,所以请你千万不要随便拿系统配置来测试! 我们还是使用下载的 regular_express.txt 文件来测试看看吧!

利用 sed 将 regular_express.txt 内每一行结尾若为 . 则换成 !


[root@linuxidc~]# sed -i 's/\.$/\!/g' regular_express.txt  

利用 sed 直接在 regular_express.txt 最后一行加入『# This is a test』


[root@linuxidc~]# sed -i '$a # This is a test' regular_express.txt  

由於 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增『# This is a test』!

sed 的『 -i 』选项可以直接修改文件内容,这功能非常有帮助!举例来说,如果你有一个 100 万行的文件,你要在第 100 行加某些文字,此时使用 vim 可能会疯掉!因为文件太大了!那怎办?就利用 sed 啊!透过 sed 直接修改/取代的功能,你甚至不需要使用 vim 去修订!

转载于:https://www.cnblogs.com/hanjiali/p/11591902.html

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

Linux命令总结--sed命令 的相关文章

  • LED测试方案及光谱图

  • teamviewer Linux centos7安装使用详细

    1 下载teamview centos版本 xff0c 本人喜欢tar gz版本 xff0c 但是官网只有rpm版本 xff0c 附件中即为官网下载的teamview11 官方下载地址 xff1a https www teamviewer
  • VirtualBox 桥接模式,虚拟机ping不通宿主机

    转载 xff1a https www jianshu com p c5344cfffc20 解决方案 方案一 xff1a 修改防火墙入站规则 打开控制面板 xff0c 找到Windows Defender 防火墙 xff0c 点击高级设置
  • mysql 中建立超级用户 superuser

    我在安装一款软件时要求有mysql 的超级用户和密码 xff0c 我可以root 无密码登录 xff0c 当时给他却不能 xff0c 所以我想建立一个超级用户 查找到学习链接 xff1a https tableplus com blog 2
  • 动手学深度学习——6. FairFace多标签分类

    动手学深度学习 6 FairFace多标签分类 记录一下学习深度学习的一些 本篇简述使用 fairface 训练一个关于人脸的多标签分类器 xff0c 并且使用 pytorch 的 DDP 加速训练 环境 xff1a ubuntu 16 0
  • 动手学深度学习——7. CNN可视化

    动手学深度学习 7 CNN可视化 记录一下学习深度学习的一些 本篇记录一下使用 Grad CAM 可视化 CNN 环境 xff1a Windows 108700K2070Pytorch 1 7 1 深度学习在很多任务上 xff0c 特别是计
  • 动手学深度学习——8. 人物肖像画

    动手学深度学习 8 人物肖像画 记录一下学习深度学习的一些 本篇记录一下使用 U 2 Net paper 生成人物肖像画 xff0c 还有 APDrawingGAN 环境 xff1a Windows 108700K2070Pytorch 1
  • python函数--enumerate()方法

    enumerate 方法 描述 enumerate 函数用于将一个可遍历的数据对象 如列表 元组或字符串 组合为一个索引序列 xff0c 同时列出数据和数据下标 xff0c 一般用在 for 循环当中 Python 2 3 以上版本可用 x
  • [HAL库学习之路]1.点亮LED

    记录自己的STM32的HAL库的学习之路 xff0c 不定期更新 一 创建工程 二 Pinout 三 Clock Configuration 四 Configuration 配置GPIO的模式 速度等等 五 Generate Code Pr
  • [HAL库学习之路]5.IWDG-独立看门狗

    记录自己的STM32的HAL库的学习之路 xff0c 不定期更新 一 Pinout 二 Clock Configuration 三 Configuration 配置GPIO 配置IWDG 四 Generate Code 代码 主函数首先点亮
  • [HAL库学习之路]7.定时器中断

    记录自己的STM32的HAL库的学习之路 xff0c 不定期更新 一 Pinout 二 Clock Configuration 三 Configuration 定时器溢出时间 T o u t 61 a r r 43 1 p s c 43 1
  • [HAL库学习之路]8.PWM输出

    记录自己的STM32的HAL库的学习之路 xff0c 不定期更新 一 Pinout 二 Clock Configuration 三 Configuration 四 Generate Code 代码 span class hljs keywo
  • [HAL库学习之路]9.输入捕获

    记录自己的STM32的HAL库的学习之路 xff0c 不定期更新 一 Pinout 二 Clock Configuration 三 Configuration 四 Generate Code 代码 计数频率为1MHz xff0c 捕获到高电
  • [HAL库学习之路]11.RTC-实时时钟

    记录自己的STM32的HAL库的学习之路 xff0c 不定期更新 一 Pinout 二 Clock Configuration 三 Configuration 四 Generate Code 代码 int span class hljs f
  • 数字电路基础(四) 数据分配器、数据选择器和数值比较器

    数字电路基础 xff08 四 xff09 数据分配器 数据选择器和数值比较器 一 数据分配器 在数据传输的过程中 xff0c 数据选择器可以把某一路的数据分配到不同的数据通道上 xff0c 这种电路称为数据分配器 简称DEMUX xff0c
  • 好心博主祝您解决sql右模糊匹配一个列表的问题

    LambdaQueryWrapper if span class token punctuation span CollectionUtil isNotEmpty span class token punctuation span requ
  • IPV9 : 中国摆脱美国IPV6, 自订互联网标准

    IPV9 中国摆脱美国IPV6 自订互联网标准 根据新华网消息指出 中国于2008 1 23宣布基于十进制技术构建的互联网投入使用 十进制互联网技术形成的IPV9协议 xff0c 是中国在互联网技术上取得的重大自主创新成果 xff0c 为摆
  • K_A18_001 基于STM32等单片机采集MQ2传感参数串口与OLED0.96双显示

    K A18 001 基于STM32等单片机采集MQ2传感参数串口与OLED0 96双显示 一 资源说明二 基本参数参数引脚说明 三 驱动说明IIC地址 采集通道选择 时序对应程序 四 部分代码说明1 接线引脚定义1 1 STC89C52RC
  • Linux命令总结--grep命令

    linux grep命令详解 简介 grep global search regular expression RE and print out the line 全面搜索正则表达式并把行打印出来 是一种强大的文本搜索工具 xff0c 它能
  • OpenStack:01---通过packstack在CentOS7上安装OpenStack(不限版本)

    官方手册步骤太多 xff0c 一着不慎满盘皆输 对于学习体验来说自动化安装的方法较为合适 1 CentOS虚拟机安装 需要注意三点 xff1a 使用mini镜像进行最小化安装配置给够CPU开启虚拟化 下面分别解释 第一条 xff1a cen

随机推荐