Linux三剑客——sed

语法

语法:
sed [选项] '模式动作' 文件...

选项参数

参数说明
-n静默输出,输出匹配到的行及处理结果
-i直接将修改结果写入文件,不用-i,sed修改的是内存数据
-e多次编辑执行动作:-e ‘动作1’ -e ‘动作2’ 等效于 ‘动作1;动作2’
-r支持正则拓展

常用内置动作命令参数

动作参数说明
a新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
d删除,后面通常不接任何东西
i插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)
p打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s/正则/替换内容/g例如 1,20s/old/new/g 就是将1到20行的old替换为new

sed -n 输出处理过的匹配数据

匹配范围

范围解释
空地址全文处理
但地址指定文件某一行
/pattern/被模式匹配到的每一行
范围区间10,29 十到二十行 , 10,+5第10行向下5行 , /pattern1/,/pattern2/
步长1~2 , 表示1、3、5、7、9行,2~2两个步长,表示2、4、6、8、10 、偶数行;

sed处理数据在内存中,-n决定处理匹配数据

样本

HELLO LINUX!  
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test 
Google
Taobao
Runoob
Tesetfile
Wiki

输出

输出(print)文件第二三行数据:

sed -n '2,3p' sedSrc.txt

默认输出全部(匹配和不匹配数据)

[e3base01@localhost str-parse]$ sed '2,3p' sedSrc.txt

HELLO LINUX!
Linux is a free unix-type opterating system.
Linux is a free unix-type opterating system.
This is a linux testfile!
This is a linux testfile!
Linux test
Google
Taobao
Runoob
Tesetfile
Wiki

加-n输出匹配处理数据

@localhost str-parse]$ sed -n '2,3p' sedSrc.txt

Linux is a free unix-type opterating system.
This is a linux testfile!

过滤筛选字符串数据

sed -n '/Linux/p' sedSrc.txt 

Linux is a free unix-type opterating system.
Linux test

增加

在某一行上面插入内容

sed  '2i insert a new Line' sedSrc.txt 

HELLO LINUX!
insert a new Line
Linux is a free unix-type opterating system.
… …

在每一行下面插入新内容

sed 'a -----------------------' sedSrc.txt
HELLO LINUX!  
-----------------------
Linux is a free unix-type opterating system.  
-----------------------
This is a linux testfile!  
-----------------------
Linux test 
-----------------------

添加多行

文本添加换行符

sed 'a Line one \n Line two \n Line three' sedSrc.txt 

HELLO LINUX!
Line one
Line two
Line three
Linux is a free unix-type opterating system.

修改(替换)

s内置符配合g,代表全局替换

//替换谷歌为百度
sed "s/Google/Baidu/g" sedSrc.txt 
//多次替换
sed -e "s/Google/Baidu/g" -e "s/Taobao/TianMao/g" sedSrc.txt

删除

//删除匹配Linux的行
sed '/Linux/d' sedSrc.txt
//删除2到3行
sed '2,3d' sedSrc.txt
//删除2到结尾行数
sed '2,$d' sedSrc.txt

sed配合正则表达式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/760655.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

纯硬件FOC驱动BLDC

1. 硬件FOC 图 1 为采用 FOC 的方式控制 BLDC 电机的过程,经由 FOC 变换( Clark 与 Park 变换) ,将三相电流转换为空间平 行电流 ID 与空间垂直电流 IQ。经过 FOC 逆变化逆( Clark 变换与逆 Park 变换) ,将两相电流转换为三相电流用于控 制电…

容器:deque

以下是对于deque容器知识的整理 1、构造 2、赋值 3、大小操作 4、插入 5、删除 6、数据存取 7、排序 #include <iostream> #include <deque> #include <algorithm> using namespace std; /* deque容器&#xff1a;双端数组&#xff0c;可以对头端进行插入删…

网页用事件监听器播放声音

一、什么是监听器&#xff1a; 在前端页面中&#xff0c;事件监听器&#xff08;Event Listener&#xff09;是一种编程机制&#xff0c;它允许开发者指定当特定事件&#xff08;如用户点击按钮、鼠标悬停、页面加载完成等&#xff09;发生时执行特定的代码块。简而言之&#x…

clonezilla(再生龙)克隆物理机linux系统,然后再去另一台电脑安装

前言: 总共需要2个u盘,一个装再生龙系统,一个是使用再生龙把硬盘备份到另一个盘里面,恢复的时候,先使用再生龙引导,然后再插上盘进行复制 1.制作启动u盘 1.1下载再生龙Clonezilla 下載 1.2下载UltraISO(https://cn.ultraiso.net/uiso9_cn.exe) 1.3 打开UltraISO,选择co…

Vue 解决报错 VM6290:1 Uncaught SyntaxError: Unexpected identifier ‘Promise‘

Vue 报错 VM6290:1 Uncaught SyntaxError: Unexpected identifier ‘Promise’ 排查 控制台报了一个错误 , Uncaught SyntaxError: Unexpected identifier ‘Promise’&#xff0c;网上查到的方法是 缺少符号&#xff0c;语法写法错误&#xff0c;但这些都没有解决我的问题&am…

用Lobe Chat部署本地化, 搭建AI聊天机器人

Lobe Chat可以关联多个模型&#xff0c;可以调用外部OpenAI, gemini,通义千问等, 也可以关联内部本地大模型Ollama, 可以当作聊天对话框消息框来集成使用 安装方法参考&#xff1a; https://github.com/lobehub/lobe-chat https://lobehub.com/zh/docs/self-hosting/platform/…

RCE漏洞

RCE&#xff08;Remote code/command execution&#xff09;&#xff0c;远程代码执行和远程命令执行。在很多web应用开发的过程中&#xff0c;程序员可能在代码中编写一些能够运行字符串的函数&#xff0c;当用户可以控制输入内容时&#xff0c;这就导致了RCE漏洞。 1 远程代…

《昇思25天学习打卡营第4天|数据集 Dataset》

文章目录 前言&#xff1a;今日所学&#xff1a;1. 数据集加载2. 数据集迭代3. 数据集常用操作与自定义数据集 前言&#xff1a; 今天学习的是数据集的内容。首先&#xff0c;数据是深度学习的基石&#xff0c;高质量的数据输入能够在整个深度神经网络中发挥积极作用。MindSpo…

安全和加密常识(6)Base64编码方式

文章目录 什么是 Base64编码原理编解码示例应用什么是 Base64 Base64 是一种用于将二进制数据编码为仅包含64种ASCII字符的文本格式的编码方法,注意,它不是加密算法。它设计的目的主要是使二进制数据能够通过只支持文本的传输层(如电子邮件)进行传输。Base64常用于在需要处…

STM32 SWD烧写

最小电路 stm32f103x 内部已经集成了振荡电路&#xff0c;可以省略&#xff1b;rst引脚电路&#xff0c;可以省略&#xff0c;boot0,boot1不需要设置 正常烧录 -------------------------------------------------------------------STM32CubeProgrammer v2.9.0 …

C++旋转点坐标计算

/// 获取A点绕B点旋转P度后的新坐标/// </summary>/// <param name"Angle">角度</param>/// <param name"CirPoint">圆心坐标</param>/// <param name"MovePoint">移动点的坐标</param>/// <param…

window搭建git环境

1.下载安装window下git专用软件scm 从Git for Windows 官网网站下载&#xff0c;并且一路安装即可 安装成功后通过桌面快捷图标Git Bash点击打开 安装后软件应该会自动帮助配置环境变量&#xff0c;如果没有需要自己配置使用 2.git环境配置 2.1设置姓名和邮箱(github上你注…

编码器的使用

视频 提高部分-第4讲 编码器的使用(1)_哔哩哔哩_bilibili 编码器单位 编码器总分辨率 编码器 一圈所计算的脉冲数&#xff08;但由于定时器会倍频 所以计算时要乘以倍频系数&#xff09; 在淘宝上看的分辨率物理分辨率 实际分辨率物理分辨率 * 定时器倍频数&#xff08;一…

c++ 设计模式 的课本范例(下)

&#xff08;19&#xff09; 桥接模式 Bridge&#xff0c;不是采用类继承&#xff0c;而是采用类组合&#xff0c;一个类的数据成员是类对象&#xff0c;来扩展类的功能。源码如下&#xff1a; class OS // 操作系统负责绘图 { public:virtual ~OS() {}virtual void draw(cha…

昇思25天学习打卡营第13天|MindNLP ChatGLM-6B StreamChat

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspo…

使用 Swift 递归搜索目录中文件的内容,同时支持 Glob 模式和正则表达式

文章目录 前言项目设置查找文件读取CODEOWNERS文件解析规则搜索匹配的文件确定文件所有者输出结果总结前言 如果你新加入一个团队,想要快速的了解团队的领域和团队中拥有的代码库的详细信息。 如果新团队中的代码库在 GitHub / GitLab 中并且你不熟悉代码所有权模型的概念或…

Burpsuite靶场信息泄露相关的实验通关

目录 第一关&#xff1a;错误消息中的信息披露 第二关&#xff1a;调试页面信息披露 第三关&#xff1a;通过备份文件披露源代码 第四关&#xff1a;通过信息披露绕过身份验证 第五关&#xff1a;版本控制历史中的信息披露 最近看大佬的文章&#xff0c;发现了很对自己没有…

鲁工小装载机-前后桥传动轴油封更换记录

鲁工装载机 因前后桥大量漏齿轮油&#xff0c;故拆开查看、更换油封 一&#xff1a; 如图圈起来的地方是螺丝和钢板相别&#xff0c;用200的焊接电流用电焊机点开一个豁口后拆除螺丝。 转轴是拆除传动轴后的样子。 这就是拆下来的样子&#xff0c;这玩意插上边那图&…

2024最新初级会计职称题库来啦!!!

16.根据增值税法律制度的规定&#xff0c;下列各项中&#xff0c;属于"提供加工、修理修配劳务"的是&#xff08;&#xff09;。 A.修理小汽车 B.修缮办公楼 C.爆破 D.矿山穿孔 答案&#xff1a;A 解析&#xff1a;选项AB&#xff1a;修理有形动产&#xff08;…

江协科技51单片机学习- p21 LED点阵屏(8*8)

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…