iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux学习,使用sed命令对文件内的指定字符串进行替换
  • 789
分享到

Linux学习,使用sed命令对文件内的指定字符串进行替换

服务器运维linux 2023-08-31 12:08:33 789人浏览 安东尼
摘要

一、创建一个txt文件,用于做测试 vi huawei.txt 二、替换每行第一个huawei为apple,第三个“/”后,不加参数就是只替换第一个 sed -i "s/huawei/apple/" huawei.txt 实现效果:

一、创建一个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

 

十五、在第一行、最后一行、倒数一行增加内容。

不需要去找某个关键词了,有点像“无中生有”,想在不破坏原来内容的情况下,添加新内容,用这种命令比较好。

# 在第一行前插入一行,即成为第一行的内容

[root@localhost ~]# sed -i '1i first line' test.txt

(没有加参数-i,不会真的改变文本内容)

 

# 在最后一行前插入一行,即成为倒数第二行的内容

[root@localhost ~]# sed -i '$i next-to-last line' test.txt

(没有加参数-i,不会真的改变文本内容) 

 

# 在最后一行后插入一行,即成为最一行的内容

[root@localhost ~]# sed -i '$a last line' test.txt

(没有加参数-i,不会真的改变文本内容)

 

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

来源地址:https://blog.csdn.net/weixin_44576709/article/details/127847817

--结束END--

本文标题: Linux学习,使用sed命令对文件内的指定字符串进行替换

本文链接: https://www.lsjlt.com/news/385550.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux学习,使用sed命令对文件内的指定字符串进行替换
    一、创建一个txt文件,用于做测试 vi huawei.txt 二、替换每行第一个huawei为apple,第三个“/”后,不加参数就是只替换第一个 sed -i "s/huawei/apple/" huawei.txt 实现效果: ...
    99+
    2023-08-31
    服务器 运维 linux
  • Linux中怎么使用sed命令替换字符串
    Linux中怎么使用sed命令替换字符串,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。sed替换的基本语法为:代码如下:sed 's/原字符串/替换字符串/'...
    99+
    2023-06-13
  • linux下使用sed命令查找和替换文件中字符串的方法
    这篇文章主要讲解了“linux下使用sed命令查找和替换文件中字符串的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下使用sed命令查找和替换文件中字符串的方法”吧!sed 命...
    99+
    2023-06-16
  • Linux:使用sed命令替换文件内容实操及各种报错问题解决
    工作遇到需要在页面一键操作,后端进行自动化运维部署的事情,这里就用的了sed命令,linux的学问真的要花时间好好学习一番了! 上面图片是AI创作生成!如需咒语可私戳哦! 目录 需求背景sed命令介绍sed命令实操查查-某行...
    99+
    2023-08-17
    linux 运维 服务器 macos centos
  • Linux系统中tr命令删除和替换文本字符的使用方法
    本篇内容介绍了“Linux系统中tr命令删除和替换文本字符的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过使用 tr,您可以非常...
    99+
    2023-06-12
  • 怎么在Linux中使用bash命令删除文件中含“指定内容”的行
    怎么在Linux中使用bash命令删除文件中含“指定内容”的行?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:#!/bin/sh# 功能:&n...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作