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

这篇具有很好参考价值的文章主要介绍了Linux学习,使用sed命令对文件内的指定字符串进行替换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、创建一个txt文件,用于做测试

vi huawei.txt

linux替换文件内容中的字符串,服务器,运维,linux

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

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

linux替换文件内容中的字符串,服务器,运维,linux

实现效果:

linux替换文件内容中的字符串,服务器,运维,linux

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

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

linux替换文件内容中的字符串,服务器,运维,linux

实现效果:

linux替换文件内容中的字符串,服务器,运维,linux

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

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

 linux替换文件内容中的字符串,服务器,运维,linux

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

sed -i "s/KFC/CPU/"

sed -i "s/KFC/CPU/"

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

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

 linux替换文件内容中的字符串,服务器,运维,linux

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

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

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

 

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

 

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

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

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

linux替换文件内容中的字符串,服务器,运维,linux

 

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

到了这里,关于Linux学习,使用sed命令对文件内的指定字符串进行替换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 下使用 tar 命令打包指定目录下的所有文件,不包含路径方法

    一,问题描述 例如:需要打包/data/android_data/VMRK02ejyijtyww20 文件夹到/data/testtar/目录下 一般我们使用命令如下命令 当我们解VMRK02ejyijtyww20.tar压缩包后发现,把路径也打包进去了, 即/data/android_data/VMRK02ejyijtyww20;而大多数情况,我们解压后只需要的是VMRK02ejyijtyww20文件夹 二、打包

    2024年02月16日
    浏览(57)
  • Linux学习——sed工具的使用

    目录 一、sed概述        1.sed命令的常用选项: 2.sed命令的操作符: 二、sed命令的打印功能 (一)默认打印方式: 1.sed -e \\\'p\\\' 123123.sh        --sed有一个默认输出,加上p,会打印两行 2. sed -n \\\'p\\\' 123123.sh        -- -n禁止了默认输出,就只有一行  3. 打印时对行号的操作sed

    2024年02月12日
    浏览(38)
  • 从小白到大神之路之学习运维第44天---第三阶段----拓展知识-----文件管理命令(find+sed+awk)、pycharm工具

    第三阶段基础 时  间:2023年6月20日 参加人:全班人员 内  容: 目录 一、文件管理命令 find 1. 根据文件名查找文件 2. 根据文件类型查找文件 3. 根据文件大小查找文件 4. 根据时间戳查找文件 5. 组合多个条件查找文件 Sed 1. 替换文本 2. 插入和删除行 3. 格式化输出 总 结: a

    2024年02月09日
    浏览(52)
  • Linux :: 内容过滤指令【3】:grep 指令【详解】:在指定文件中过滤搜索信息、(模糊)查找包含指定字符串的内容!(如:系统故障时,查看操作日志信息等情景)

    前言:本篇是 Linux 基本操作篇章的内容! 笔者使用的环境是基于腾讯云服务器:CentOS 7.6 64bit。 学习集: C++ 入门到入土!!!学习合集 Linux 从命令到网络再到内核!学习合集 注:find 指令常与 grep 指令在面试中被提及,需让你回答异同! 目录索引: 1. 基本语法、功能及使

    2024年02月09日
    浏览(61)
  • linux 查看文件/grep字符串匹配命令

    cat 用于连接文件并打印到标准输出。可以用 cat 命令将多个文件合并成一个文件,也可以用它来查看单个文件的内容。常用的选项包括 -n (显示行号)和 -b (显示非空行号) ,例如 cat -n file.txt 可以显示文件的内容,并在每行开头显示行号。 more 用于分页显示文本文件的内

    2024年02月07日
    浏览(50)
  • Linux文件里面查找指定内容的命令详解

    公众号请关注\\\"果酱桑\\\", 一起学习,一起进步! 目录 1. grep命令 2. find命令 3. ack命令 4. ag命令 5. ripgrep命令 6. 总结 在Linux系统中,我们经常需要在文件中查找特定的内容。这个过程可能会非常繁琐,但是Linux提供了很多工具来帮助我们完成这个任务。在本篇文章中,我们将介绍一

    2024年02月09日
    浏览(60)
  • shell读取配置文件-sed命令

    在编写启动脚本时,涉及到读取配置文件,特地记录下shell脚本读取启动文件的方式。主要提供两种格式的读取方式,方式一配置文件采用“[]”进行分区,方式二配置文件中需要有唯一的配置项名称。 配置文件格式如下: # cat -n config.ini 1 #MYSQL配置项 2 [MYSQL] 3 DB_HOST=192.168.

    2023年04月11日
    浏览(39)
  • linux命令统计文件中某个字符串出现的次数

    可以使用grep命令统计文件中某个字符串出现的次数。语法: - grep -o:查找文件中匹配的字符串,并只输出字符串本身 - \\\'字符串\\\':需要统计的字符串,用单引号括起来 - 文件名:需要查找的文件的路径和文件名 - wc -l:统计行数,这里统计grep输出的行数,即字符串出现的次数例如,要统计

    2024年02月08日
    浏览(44)
  • Linux命令小技巧:显示文件指定行的内容

    工作中会有很多千奇百怪的需求,比如:如何在 Linux 命令行中快速找到某个文件的第 n 行?如何显示从第 x 行到第 y 行之间的内容? 想要实现以上效果,其实有很多办法可以实现。 比如,假如要显示第 13 行内容,可以使用 head 命令组合 tail 命令,如下: 例如: 输出: 或者

    2024年02月11日
    浏览(51)
  • 指定linux文件夹下所有文件赋权命令“chmod -R 755”

    仓库:Ai-trainee/GPT-Prompts-Hub 下面我们假设要为:/opt/robot/lib/robot_control/下所有子文件赋权 如果要为 robot_control 目录中的所有文件分配权限(在 Linux 术语中也称为“更改文件权限”或“chmod”),则可以使用 chmod 命令在 Linux 终端中。 下面通过逐步类比来理解 Linux 中文件权限的

    2024年04月27日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包