【Linux】sed命令使用

news2025/1/11 2:39:12

sed 命令

sed全称是:Stream EDitor。

sed 命令是利用脚本来处理文本文件。sed 一次只读取一行文本到缓冲区,然后读取命令,对此行进行编辑,然后读取下一行,重复此过程直到结束。

sed 与 vi 的区别

【Linux】 vi / vim 使用


vi 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本。

sed 采用的是流编辑模式,最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。

sed 是一种非交互式编辑器(即用户不必参与编辑过程),它使用预先设定好的编辑指令对输入的文本进行编辑,完成之后再输出编辑结构

语法

sed [-hnV] [ -e<script>] [-f<script文件>] [文本文件]

sed 命令 -Linux手册页

选项及作用

执行令 : sed  --help

执行命令结果

参数

  • -e<script>或--expression=<script>         以选项中指定的script来处理输入的文本文件。
  • -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -h或--help                     显示帮助。
  • -n或--quiet或--silent          仅显示script处理后的结果。
  • -v 或--version                显示版本信息。
  • -i                                  此选项会直接修改源文件,要慎用。
  • -b, --binary                    以二进制模式打开文件
  • -l N, --line-length=N          指定每行的长度
  • -r, --regexp-extended           在命令中使用扩展的正则表达式
  • -s, --separate                将输入的文件视为需要进行分别处理的单独文件,而不是把它们视为一整个长的输入
  • -u, --unbuffered             从输入文件中加载最少数量的数据,并更频繁地刷新输出
  • -z, --null-data             用NUL符号分隔各行

命令

  • a  在当前行后添加一行或多行
  • c  用新文本修改(替换)当前行的内容
  • d 删除行
  • i  在当前行之前插入文本
  • h 把模式空间里的内容复制到暂存缓存区
  • H 把模式空间里的内容追加到暂存缓存区
  • g 取出暂存缓冲区里的内容,将其复制到模式空间,覆盖该处原有内容
  • G 取出暂存缓冲区里的内容,将其复制到模式空间,追加在原有内容后面l 列出非打印字符
  • p 打印行
  • n 读入下一输入行,并从下一条命令而不是第一条命令开始处理
  • q 结束或退出 sedr 从文件中读取输入行! 对所选行意外的所有行应用命令
  • s 用一个字符串替换另一个
  • g 在行内进行全局替换
  • p 打印行
  • w 将行写入文件
  • x 交换暂存缓冲区与模式空间的内容
  • y 将字符转换为另一字符(不能对正则表达式使用 y 命令)

常用命令示例

命令:cat test8.text 

查看test8.text 文件内容  。

命令:sed -e 4a\程序员识堂在做饭  test8.text

在 test8.text 文件的第四行后添加一行,并将结果输出到标准输出 。

命令: sed '3i\程序员食堂大叔在做饭' test8.text

在 test8.text 文件的第3 行前添加一行"程序员食堂大叔在做饭",并将结果输出到标准输出 。

命令: sed 's/程序员识堂/程序员食堂/' test8.text

在 test8.text 中每行的 程序员识堂  替换为程序员食堂,但只替换每行内匹配到的第一个程序员识堂,并将结果输出到标准输出 。

如果需要替换行内所有的程序员识堂 ,就需要引入命令 g:

命令: sed -n  's/程序员识堂/程序员食堂/p' test8.text

在 test8.text 中每行的 程序员识堂  替换为程序员食堂。-n 选项会禁止 sed 输出,但 p 标记会输出修改过的行 ,将二者匹配使用的效果就是只输出被替换命令修改过的行。


命令:sed -i 's/\r//'   test8.text

转换windows文件  test8.text 中格式为unix,去除\r。

命令: sed '4d' test8.text

在  test8.text  删除第 4 行。

命令:  sed '4,$d' test8.text

在  test8.text  删除第 4 行到最后一行。

命令: sed 'd' test8.text

在  test8.text  删除全部。

命令: sed '1,5d' test8.text

在  test8.text  删除1-5行。

命令:  sed '3c\程序员识堂大叔在刷碗 ' test8.text

在  test8.text  取代指定行,取代内容:程序员识堂大叔在刷碗 。

命令:  sed -n '/程序员识堂/p' test8.text

在  test8.text  搜索符号条件“程序员识堂”的行,并输出该行的内容。

命令:  sed '4p' test8.text

在  test8.text  中重复打印第 4 行。

命令:  sed '2,,4p' test8.text

在  test8.text  中重复打印第 2-4 行。

命令:  sed -n '/999/p' test8.text

在  test8.text  中,打印匹配到 999 的行。

命令:  sed -n '/999/!p' test8.text

在  test8.text  中,打没有印匹配到 999 的行。

命令: sed -i 's/程序员识堂/程序员食堂/g' test8.text

在  test8.text  中,把“程序员识堂”替换成  “程序员食堂”。


 




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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DOM笔记二】操作元素(修改元素内容,修改常见元素/表单元素/元素样式属性,排他思想,自定义属性操作,应用案例!)

文章目录 4 操作元素4.1 修改元素的内容4.2 修改常见元素的属性案例&#xff1a;分时问候 4.3 修改表单元素属性案例&#xff1a;登录时隐藏/显示密码 4.4 修改元素样式属性4.4.1 行内样式操作 element.style案例1&#xff1a;关闭二维码广告案例2&#xff1a;遍历精灵图案例3&…

C# 图解教程 第5版 —— 第19章 枚举器和迭代器

文章目录 19.1 枚举器和可枚举类型19.2 IEnumerator 接口19.3 IEnumerable 接口19.4 泛型枚举接口19.5 迭代器19.5.1 迭代器块19.5.2 使用迭代器来创建枚举器19.5.3 使用迭代器来创建可枚举类型 19.6 常见迭代器模式19.7 产生多个可枚举类型19.8 将迭代器作为属性19.9 迭代器的…

Postman使用总结--参数化

将 测试数据&#xff0c;组织到 数据文件中&#xff0c;通过脚本的反复迭代&#xff0c;使用不同的数据&#xff0c;达到测试不同用例的目标 数据文件有两种&#xff1a; CSV &#xff08;类似于excel&#xff09; 格式简单用这个 文件小 JSON&#xff08;字典列表&#x…

Vue3-22-组件-插槽的使用详解

插槽是干啥的 插槽 就是 组件中的一个 占位符&#xff0c; 这个占位符 可以接收 父组件 传递过来的 html 的模板值&#xff0c;然后进行填充渲染。 就这么简单&#xff0c;插槽就是干这个的。要说它的优点吧&#xff0c;基本上就是可以使子组件的内容可以被父组件控制&#xf…

Amazon CodeWhisperer 体验

文章作者&#xff1a;jiangbei 1. CodeWhisperer 安装 1.1 先安装 IDEA&#xff0c;如下图&#xff0c;IDEA2022 安装为例&#xff1a; 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者…

MongoDB中的关系

本文主要介绍MongoDB中的关系。 目录 MongoDB的关系嵌入关系引用关系 MongoDB的关系 MongoDB是一个非关系型数据库&#xff0c;它使用了键值对的方式来存储数据。因此&#xff0c;MongoDB没有像传统关系型数据库中那样的表、行和列的概念。相反&#xff0c;MongoDB中的关系是通…

主馆位置即将售罄“2024北京国际信息通信展会”众多知名企聚京城

2024北京国际信息通信展&#xff0c;将于2024年9月份在北京国家会议中心盛大召开。作为全球信息通信技术领域的重要盛会&#xff0c;此次展会将汇集业内顶尖企业&#xff0c;展示最新的技术成果和产品。 目前&#xff0c;主馆位置即将售罄&#xff0c;华为、浪潮、中国移动、通…

数据结构(Chapter Two -02)—顺序表基本操作实现

在前一部分我们了解线性表和顺序表概念&#xff0c;如果有不清楚可以参考下面的博客&#xff1a; 数据结构(Chapter Two -01)—线性表及顺序表-CSDN博客 首先列出线性表的数据结构&#xff1a; #define MaxSize 50 //定义顺序表最大长度 typedef struct{ElemType data…

【面试】Java最新面试题资深开发-微服务篇(1)

问题九&#xff1a;微服务 什么是微服务架构&#xff1f;它与单体架构相比有哪些优势和劣势&#xff1f;解释一下服务发现和服务注册是什么&#xff0c;它们在微服务中的作用是什么&#xff1f;什么是API网关&#xff08;API Gateway&#xff09;&#xff1f;在微服务中它有何…

什么是关键词排名蚂蚁SEO

关键词排名是指通过搜索引擎优化&#xff08;SEO&#xff09;技术&#xff0c;将特定的关键词与网站相关联&#xff0c;从而提高网站在搜索引擎中的排名。关键词排名对于网站的流量和用户转化率具有至关重要的影响&#xff0c;因此它是SEO工作中最核心的部分之一。 如何联系蚂…

任务十六:主备备份型防火墙双机热备

目录 目的 器材 拓扑 步骤 一、基本配置 配置各路由器接口的IP地址【省略】 1、配置BGP协议实现Internet路由器之间互联 2、防火墙FW1和FW2接口IP配置与区域划分 3、配置区域间转发策略 4、配置NAPT和默认路由 5、配置VRRP组&#xff0c;并加入Active/standby VGMP管…

06-部署knative-eventing

环境要求 For prototyping purposes 单节点的Kubernetes集群&#xff0c;有2个可用的CPU核心&#xff0c;以及4g内存&#xff1b; For production purposes 单节点的Kubernetes集群&#xff0c;需要至少有6个CPU核心、6G内存和30G磁盘空间多节点的Kubernetes集群中&#xff0c;…

Redis设计与实现之慢查询日志

目录 一、慢查询日志 1、相关数据结构 2、慢查询日志的记录 3、慢查询日志的操作 4、如何设置慢查询的阈值&#xff1f; 5、如何查看慢查询日志的内容&#xff1f; 6、如何分析慢查询日志以找出性能瓶颈&#xff1f; 7、如何优化慢查询以提高Redis的性能&#xff1f; 8…

人工智能_机器学习069_SVM支持向量机_网格搜索_交叉验证参数优化_GridSearchCV_找到最优的参数---人工智能工作笔记0109

然后我们再来说一下SVC支持向量机的参数优化,可以看到 这次我们需要,test_data这个是测试数据,容纳后 train_data这个是训练数据 这里首先我们,导出 import numpy as np 导入数学计算包 from sklearn.svm import SVC 导入支持向量机包 分类器包 def read_data(path): wit…

纵横字谜的答案 Crossword Answers

纵横字谜的答案 Crossword Answers - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 翻译后大概是&#xff1a; 有一个 r 行 c 列 (1<r,c<10) 的网格&#xff0c;黑格为 * &#xff0c;每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格&…

【Vue2】Component template should contain exactly one root element.

问题描述 [plugin:vite:vue2] Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.原因分析 这个错误通常是由于 Vue 组件的模板中包含多个根元素导致的。Vue 要求组件模板中只…

【计算机网络】TCP协议——3. 可靠性策略效率策略

前言 TCP是一种可靠的协议&#xff0c;提供了多种策略来确保数据的可靠性传输。 可靠并不是保证每次发送的数据&#xff0c;对方都一定收到&#xff1b;而是尽最大可能让数据送达目的主机&#xff0c;即使丢包也可以知道丢包。 目录 一. 确认应答和捎带应答机制 二. 超时重…

Linear Regression线性回归(一元、多元)

目录 介绍&#xff1a; 一、一元线性回归 1.1数据处理 1.2建模 二、多元线性回归 2.1数据处理 2.2数据分为训练集和测试集 2.3建模 介绍&#xff1a; 线性回归是一种用于预测数值输出的统计分析方法。它通过建立自变量&#xff08;也称为特征变量&#xff09;和因变…

什么店生意好?C++采集美团商家信息做数据分析

最近遇到几个朋友&#xff0c;想要一起合伙投资一个实体店&#xff0c;不问类型&#xff0c;就看哪类产品相对比较受欢迎。抛除地址位置&#xff0c;租金的影响&#xff0c;我们之谈产品。因此&#xff0c;我熬了几个通宵&#xff0c;写了这么一段爬取美团商家商品信息的数据并…

Linux之grep、sed、awk

目录 1.grep 2.sed 3.awk 1.grep grep 擅长过滤查找&#xff0c;按行进行过滤 例&#xff1a; 当有用户对我们的主机进行爆破攻击时&#xff0c;我们可以使用grep将 ip 查找出来&#xff0c;进行封锁等处理 在 /var/log 目录下的 secure 文件中存放在用户登录连接信息&am…