当前位置: 首页 > news >正文

【嵌入式开发 Linux 常用命令系列 7.6 -- sed 替换指定字符串】


请阅读【嵌入式开发学习必备专栏】


文章目录

    • sed 替换指定字符串

sed 替换指定字符串

背景:
找到当前目录下所有的.h 和 .c 文件 将他们中的字符 print_log替换为 demo_log

可以使用find命令结合sed命令在Linux环境下完成这项任务。下面是一个命令行示例,它搜索当前目录及其子目录下所有的.h.c文件,并使用sed替换文件中所有出现的test_logdemo_log:

find . \( -name "*.h" -o -name "*.c" \) -exec sed -i 's/test_log/demo_log/g' {} +

这个命令的组成部分解释如下:

  • find .:从当前目录开始搜索。
  • \( -name "*.h" -o -name "*.c" \):搜索所有以.h.c结尾的文件。这里的\(\)用于分组,-o表示逻辑“或”操作。
  • -exec sed -i 's/test_log/demo_log/g' {} +:对找到的每个文件执行sed命令。sed -i表示直接修改文件,不输出到标准输出(即“就地”修改)。's/test_log/demo_log/g'sed的替换命令,意味着将test_log替换为demo_logg标记表示全局替换(即一行中的所有匹配都被替换)。{}是一个占位符,代表find命令找到的文件名。+表示将所有找到的文件名一次性传递给sed命令,这比对每个文件单独调用sed更高效。

请注意,这个命令使用了-i选项,它会直接修改原始文件。建议在执行替换之前对重要文件进行备份,或者先运行命令而不带-i选项来检查哪些更改将被应用,

例如:

find . \( -name "*.h" -o -name "*.c" \) -exec sed 's/test_log/demo_log/g' {} +

这将输出所有的替换结果到标准输出,而不会修改原文件。确认替换操作是所期望的之后,再运行带有-i选项的命令进行实际的替换。

http://www.lryc.cn/news/348253.html

相关文章:

  • C++语言的字符数组
  • 24届电信红队实习生面经
  • linux下使用jexus部署aspnet站点
  • 代码随想录训练营Day 27|理论基础、力扣 77. 组合
  • Spring框架深度解析:打造你的Java应用梦工厂
  • Python 正则表达式(一)
  • Cocos Creator 3.8.x报错:5302
  • 网页如何集成各社区征文活动
  • 【知识碎片】2024_05_13
  • Day53代码随想录动态规划part13:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
  • 自己动手为wordpress注册一个Carousel轮播区块
  • 基于Springboot的实习生管理系统(有报告)。Javaee项目,springboot项目。
  • 良心实用的电脑桌面便利贴,好用的便利贴便签小工具
  • Eayswoole 报错 crontab info is abnormal
  • 移动 App 入侵与逆向破解技术-iOS 篇
  • 2024服贸会,参展企业媒体宣传报道攻略
  • CI/CD笔记.Gitlab系列.新用户管理
  • 前端 JS 经典:JS 基础类型和 typeof
  • Java入门基础学习笔记11——关键字和标识符
  • 设计模式-解释器模式(Interpreter)
  • 机器视觉任务中语义分割方法的进化历史
  • Java并发编程: Synchronized锁升级
  • Atcoder C - Routing
  • 升级! 测试萌新Python学习之连通数据库Pymsql增删改及封装(四)
  • 【大数据】containered学习笔记
  • 「TypeScript」TypeScript入门练手题
  • k8s 使用Docker和Containerd对比分析
  • MySQL 通过 systemd 启动时 hang 住了……
  • pat乙1033-旧键盘打字
  • Ubuntu安装VScode