sed命令对文件内的指定字符串进行替换

news2024/12/23 14:27:50

目录

一、创建一个txt文件

二、替换每行第一个huawei为apple,第三个“/”后,不加参数就是只替换第一个

三、替换每行所有的xiaomi为iphone,第三个“/”后,加参数g就是替换所有

四、替换每行第二个redmi为potato,第三个“/”后,加参数2就是替换第2个

 五、替换每行第二个mate到最后一个mate,为pico,第三个“/”后,加参数2g就是替换第2至最后

六、替换每行前两个KFC为CPU

七、替换第二行的第一个HBW为MDL

 八、替换第二行到最后一行的HBW为MDL(符号$表示最后一行,如果写数字就代表到第几行)

九、给第一行行首加上chicken(符号^代表行首)

 十、给第一行行尾加上beautiful(符号$代表行尾)

十一、给每行行首加上chicken,同时创建备份文件(备份还没有写入chicken的文件)

 十二、多个替换动作,用分号;隔开可以一起执行

十三、如果需要替换的字符串包含单引号‘,那么就使用双引号来包围参数

 十四、斜杠/本身是作为sed语句中的分隔符,但如果需要替换的字符串里也包含斜杠/,那么可以用井号#来做分隔符(还可以用问号?)


一、创建一个txt文件

vi huawei.txt

二、替换每行第一个huawei为apple,第三个“/”后,不加参数就是只替换第一个

sed -i "s/huawei/apple/" huawei.txt

 

实现效果:

 

三、替换每行所有的xiaomi为iphone,第三个“/”后,加参数g就是替换所有

sed -i  "s/xiaomi/iphone/g" huawei.txt

 

实现效果:

 

四、替换每行第二个redmi为potato,第三个“/”后,加参数2就是替换第2个

sed -i "s/redmi/potato/2"

 

 五、替换每行第二个mate到最后一个mate,为pico,第三个“/”后,加参数2g就是替换第2至最后

sed -i "s/mate/pico/2g" 

 

六、替换每行前两个KFC为CPU

sed -i "s/KFC/CPU/"

sed -i "s/KFC/CPU/"

 

先替换第一个,此时原本的第二个字符串从顺序上来说变成了第一个,就再替换一次

(以上的操作范围为每一行,接下来我们精确筛选需要修改的特定行or第几行,方便演示我们就只改变特定行的第一个字符串。也就是不加“g”)

七、替换第二行的第一个HBW为MDL

sed -i "2s/HBW/MDL/" HBW.txt 

 八、替换第二行到最后一行的HBW为MDL(符号$表示最后一行,如果写数字就代表到第几行)

sed -i '2,$s/HBW/MDL/' HBW.txt 

注意当语句中使用逗号","时,语句外就必须使用单引号

(以上都是针对特定字符串本身的替换,接下来我们修改行首或行尾).

九、给第一行行首加上chicken(符号^代表行首)

sed -i '1s/^/chicken/' ktv.txt

 

 十、给第一行行尾加上beautiful(符号$代表行尾)

sed -i '1s/$/beautiful/' ktv.txt 

 

(使用sed -i命令直接修改文件后,后悔了怎么办?可以加上参数-i.bak,就会修改的同时创建备份)

十一、给每行行首加上chicken,同时创建备份文件(备份还没有写入chicken的文件)

sed -i.bak 's/^/chicken/' aaa.txt 

 

 十二、多个替换动作,用分号;隔开可以一起执行

同时给所有行首加上top,给所有行尾加上bottom(注意没有调用-i参数,修改结果不会写入文件

sed 's/^/top/;s/$/bottom/' aaa.txt

十三、如果需要替换的字符串包含单引号‘,那么就使用双引号来包围参数

 替换每行的n’a为na,(注意为了方便没有使用-i参数,修改结果不会写入文件)

sed "s/n'a/na/" aaa.txt

 十四、斜杠/本身是作为sed语句中的分隔符,但如果需要替换的字符串里也包含斜杠/,那么可以用井号#来做分隔符(还可以用问号?)

替换n/a为na,(没有调用参数-i,修改结果不会写入文件)

sed "s#n/a#na#" aaa.txt

sed "s?n/a?na?" aaa.txt

感悟:sed的方便在之处在于你可以快速定位编辑文档内容中的某个关键词(你已知那个字符串),但是对于未知字符串就很难直接用sed解决。如密码本,我想替换所有密码,但它们都是随机字符串,假如文件内容是“password:12345678;password:22345678;……”,那么我能够定位的只能是“password:”和“;”,如何继续去替换非固定的“12345678”还需要研究

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

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

相关文章

ubutun22.04使用deb包安装mysql8.0.33

下载:https://dev.mysql.com/downloads/mysql/ 下载完毕,在ubuntu服务器解包。 安装使用dpkg命令,依次执行如下: sudo dpkg -i mysql-common_8.0.33-1ubuntu22.04_amd64.deb sudo dpkg -i mysql-community-client-plugins_8.0.33-1ubuntu22.04_amd64.deb sudo dpk…

云原生|秒懂云原生容灾备份实践

作者:刘健 后端开发工程师 目录 一、需备份的数据 二、在云航项目中使用 三、备份任务说明 一、需备份的数据 kubernetes在运行中,通常会产生两类数据: kubernetes集群资源对象数据。 容器运行时产生的数据。 针对cloudUp项目而言&am…

淘宝商品信息存入数据库

python 爬虫程序: #京东.pyimport json import pprint import re import requests # name_turnover {} url "https://s.taobao.com/search?data-keys&data-value88&ajaxtrue&_ksTS1686118766568_2290&callbackjsonp2291&ieutf8&in…

用AI写出的高考作文!

今天是6月7日,又到了每一年高考的日子。小灰自己参加高考是在2004年,距离现在已经将近20年,现在回想起来,真的是恍如隔世。 今天高考语文的作文题是什么呢? 全国甲卷的题目是:人技术时间 人们因技术发展得以…

centos7 部署 Redis

从源安装Redis 一、安装Redis1.1 下载源文件1.2 编译源文件1.2.1 解压文件1.2.2 编译Redis 1.2.3 安装Redis1.2.4 启动 Redis 二、Redis设置2.1 缓存设置2.2 redis 环境优化2.3 安全设置 一、安装Redis 1.1 下载源文件 使用下列命令获取最新版的稳定Redis wget https://down…

Live800:智能客服有哪些未来发展趋势?

智能客服,也称智能问答系统,是一种利用机器学习、自然语言处理等技术实现自主询问、自主应答、自主维护的自动化系统。它们可以通过文字形式,为用户提供个性化、一对一的服务,避免了人工客服的人力成本和等待时间。 未来&#xff…

【Protobuf速成指南】enum类型的使用

文章目录 2.1枚举类型一、如何定义枚举类型?二、语法规范三、重定义问题四、enum类型相关函数五、Contact 2.1 改写六、总结 2.1枚举类型 本系列文章将通过对通讯录项目的不断完善,带大家由浅入深的学习Protobuf的使用。这是Contacts的2.1版本&#xff0…

【IMX6ULL驱动开发学习】02.IMX6ULL烧写Linux系统

由于我买的是正点原子的IMX6ULL阿尔法开发板,但是我是看韦东山老师视频学习的驱动 所以这里我烧录的方法是按照韦东山老师的课程来的 这里给出烧写Linux系统用到的工具 链接:https://pan.baidu.com/s/1bD-xxn3K8xQAVkJSaJmTzQ 提取码:af6w …

操作系统1-操作系统的基本特征和主要功能

目录 1、操作系统的目标和作用 (1)操作系统的目标 (2)操作系统的作用 2、操作系统的发展过程 (1)未配置操作系统的计算机系统 (2)单道批处理系统(Simple Batch Processing Sys…

企企通受邀出席多场高质量数智化活动,推进行业数字化升级转型

当前,数字经济已成为引领全球经济社会变革、推动我国经济高质量发展的重要引擎。Chat GPT的横空出世,宣告虚实无缝结合的跨场景体验时代即将到来。在云计算、大数据、人工智能、物联网等技术助推下,经过大量实践证明,数字化、智能…

工业RFID读写器选择指南

工业RFID读写器在工业领域上可提升自动化、现代化工业生产的效率,那么企业在选择工业读写器的时候,需要注重哪些方面,如何选择呢?以下是ANDEWELL给大家准备的工业RFID读写器选择指南! 1、根据应用场景选择 根据不同的应用场景,要…

【Docker安装部署Neo4j保姆级教程】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

大数据架构师岗位的主要职责概述(合集)

大数据架构师岗位的主要职责概述1 职责: 1.参与公司数据平台系统规划和架构工作,主导系统的架构设计和项目实施,确保项目质量和关键性能指标达成; 2.统筹和推进制造工厂内部数据系统的构建,搭建不同来源数据之间的逻辑关系&#x…

10.无监督学习

10.1 无监督学习的定义 监督学习:我们有一些列标签,然后用假设函数去拟合它 无监督学习:给出的数据不带任何标签。对于无监督学习来说,需要做的就是将数据输入到算法中,让算法找到一些隐含在数据中的结构,通…

IDEA代码提示设置

1. 打开File -> setting -> Editor -> Live Templates 2. 点击中间框框中的右侧""号,选择 Template Group, 命名为MyGroup(随便起名字) 3. 选中 MyGroup 点击右侧""号,选择Live Template Abbreviation 快捷提示 Description 描述 Template tex…

探究核心技术最佳实践,云原生OLAP论坛火热开启!

2023/06/11,09:00-12:30,在DataFunSummit 2023:OLAP引擎架构峰会上,由阿里云资深技术专家,实时数仓 Hologres 研发负责人姜伟华老师出品的云原生OLAP论坛讲邀请来自阿里云、亚马逊云科技、三七互娱、聚水潭、诺亚财富的…

相机成像模型(二)

相机内参/外参 将上述公式整合到一起,得到世界坐标系中点(Xw,Yw,Zw)映射到像素坐标系中点(u,v)的计算过程,同时给出相机内参、外参的定义如下。 相机外参:描述世界坐标系与相机坐标系之间的变换关系,可将世界坐标系中的点变换至相机坐标系;依赖世界坐标系的定义。 相机内参…

ubuntu18.04LTS编译openssl库进行rsa加密解密

一、下载openssl库源码,下载地址:https://ftp.openssl.org/source/ 我下载的版本: 二、编译源码 1、解压源码: tar zxvf openssl-1.1.1u.tar.gz 2、进入到解压后的文件夹中: cd openssl-1.1.1u/3、执行配置&#x…

6.数组、排序和查找|Java学习笔记

文章目录 数组数组使用注意事项和细节数组赋值机制 排序查找相关链接 数组 数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。 数据类型 数组名[] new 数据类型[大小];int a[] 或者 int[] a 都可以。 int[] a {1,2,3};// 二维数组的声明方式有…

ThreeJS教程:山脉地形高度可视化

推荐:将 NSDT场景编辑器加入你的3D工具链 3D工具集: NSDT简石数字孪生 山脉地形高度可视化 一个山脉地形的高度可视化,具体说就是地形不同的高度设置不同的颜色值。有多种方式,下面就举一个设置顶点颜色.attributes.color的例子 …