前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【sed学习】sed -i和sed -i -e有什么区别

【sed学习】sed -i和sed -i -e有什么区别

作者头像
天天Lotay
发布2024-01-06 09:35:15
2270
发布2024-01-06 09:35:15
举报
文章被收录于专栏:嵌入式音视频嵌入式音视频

前言: 项目脚本有句sed -i 'aPRODUCT_PACKAGES += rtk_mdnsd' device.mk sed -i -e 'a/vendor/bin/ipv4lld u:object_r:ipv4lld_exec:s0' sepolicy/file_contexts不太清楚sed -i和sed -i -e有什么区别,学习一下

sed -ised -i -e 是用于编辑文件中匹配模式的命令。它们的区别在于 -e 选项。

  • sed -i:直接编辑文件,并将结果写回原始文件中。不需要指定脚本文件。
  • sed -i -e:与 -i 类似,但是需要使用 -e 选项后跟一个或多个编辑指令,这些指令可以是正则表达式、替换操作等,以对文件进行更复杂的编辑。

例如,以下命令使用 sed -i 将文件中所有的 “old” 替换为 “new”:

代码语言:javascript
复制
sed -i 's/old/new/g' file.txt

而以下命令使用 sed -i -e 在替换之前先打印行号,并将 “old” 替换为 “new”:

代码语言:javascript
复制
sed -i -e '/old/=' -e 's/old/new/g' file.txt

请注意,在使用 -i 选项时,请务必小心操作,因为它会直接修改原始文件。建议在进行修改之前备份文件。


当使用 sed -i 命令时,可以直接编辑文件并将结果写回原始文件中。以下是几个示例:

将文件中的所有 “apple” 替换为 “orange”:

代码语言:javascript
复制
sed -i 's/apple/orange/g' file.txt

删除文件中包含特定字符串的行:

代码语言:javascript
复制
sed -i '/pattern/d' file.txt

而在使用 sed -i -e 命令时,可以在编辑之前先执行一些额外的操作,例如打印行号或添加其他替换规则。以下是几个示例:

在替换之前先打印包含 “apple” 的行号:

代码语言:javascript
复制
sed -i -e '/apple/=' -e 's/apple/orange/g' file.txt

替换文件中的多个模式:

代码语言:javascript
复制
sed -i -e 's/apple/orange/g' -e 's/banana/mango/g' file.txt

添加一个新行到以 “Hello” 开头的行之后:

代码语言:javascript
复制
sed -i -e '/^Hello/a\New line' file.txt

以上示例展示了 sed -ised -i -e 之间的一些区别,后者可用于更复杂的编辑任务。请根据具体需求选择适合的命令和选项。


学习使用 sed 命令可以帮助你在文本处理中实现强大的编辑和转换功能。以下是一些学习 sed 的步骤和资源推荐:

  1. 学习基本语法:sed 命令可以通过一系列的编辑指令来操作文本。了解基本的 sed 语法,包括模式匹配、替换、删除等操作是很重要的。你可以查阅 sed 的官方文档或在线教程来学习详细的语法规则。
  2. 实践例子:通过实际的例子来练习 sed 的用法,例如替换文件中的字符串、删除特定行、添加新行等。逐步尝试各种不同的 sed 命令并观察结果。
  3. 正则表达式:了解正则表达式对于掌握 sed 是至关重要的,因为 sed 使用正则表达式进行模式匹配。学习常见的正则表达式语法以及元字符的含义,可以帮助你更好地理解和应用 sed 命令。
  4. 阅读文档和教程:sed 的官方文档提供了详细的命令说明和示例。此外,还有许多在线教程和博客文章可供参考。阅读这些资源可以帮助你更深入地理解 sed 的功能和用法。

以下是一些学习 sed 的资源推荐:

  • GNU sed 官方文档:https://www.gnu.org/software/sed/manual/sed.html
  • Sed - An Introduction and Tutorial by Bruce Barnett: http://www.grymoire.com/Unix/Sed.html
  • The sed FAQ: https://www.catonmat.net/blog/sed-one-liners-explained-part-one/
  • sed Cheat Sheet: https://www.cheatography.com/davechild/cheat-sheets/sed/

通过不断练习和实践,你将逐渐掌握 sed 命令的使用技巧,并能够灵活应用它来处理文本数据。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档