网站首页 > 技术文章 正文
Sed提供了很多命令来用文件中的行执行许多操作。在本文中,让我们回顾一下如何追加,插入,替换文件中的一行以及如何获取文件的行号。
附加行
插入行
换行
计数线
让我们先创建将在下面提到的所有示例中使用的geekstuff.txt文件。
$cat thegeekstuff.txt Linux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
使用Sed命令追加行
Sed提供了命令“a”,在每一行后面加上地址或模式。
Syntax: #sed 'ADDRESS a\ Line which you want to append' filename #sed '/PATTERN/ a\ Line which you want to append' filename
Sed追加示例1.在文件的第三行之后添加一行。
在第三行之后添加“酷小工具和网站”这一行。sed“a”命令在匹配后插入行。
$ sed '3 a\ > Cool gadgets and websites' thegeekstuff.txtLinux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc)Cool gadgets and websitesStorage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Sed追加示例2.在匹配模式的每行之后追加一行
下面的sed命令将在与“Sysadmin”模式匹配的每行之后添加“Linux Scripting”行。
$ sed '/Sysadmin/a \ > Linux Scripting' thegeekstuff.txtLinux SysadminLinux ScriptingDatabases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.Linux Scripting
Sed追加示例3.在文件末尾添加一行
以下示例在文件末尾追加“网站设计”一行。
$ sed '$ a\ > Website Design' thegeekstuff.txtLinux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.Website Design
使用Sed命令插入行
sed命令“i”用于在范围或模式的每一行之前插入一行。
Syntax: #sed 'ADDRESS i\ Line which you want to insert' filename #sed '/PATTERN/ i\ Line which you want to insert' filename
Sed插入示例1.在行的第4行之前添加一行。
在第四行之前添加一行“酷玩小工具和网站”。“a”命令在匹配之后插入行,而“i”在匹配之前插入。
$ sed '4 i\ > Cool gadgets and websites' thegeekstuff.txtLinux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc)Cool gadgets and websitesStorage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Sed插入示例2.在图案的每一行之前插入一行
下面的sed命令将在每个与“Sysadmin”模式匹配的行之前添加一行“Linux Scripting”。
$ sed '/Sysadmin/i \ > Linux Scripting' thegeekstuff.txtLinux ScriptingLinux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available)Linux ScriptingWindows- Sysadmin, reboot etc.
Sed插入示例3.在文件的最后一行之前插入一行。
在文件的最后一行之前追加一行“网站设计”。
$ sed '$ i\ > Website Design' thegeekstuff.txtLinux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available)Website DesignWindows- Sysadmin, reboot etc.
用Sed命令替换行
sed中的“c”命令用于用新的给定行替换与模式或范围的每一行匹配。
Syntax: #sed 'ADDRESS c\ new line' filename #sed '/PATTERN/ c\ new line' filename
Sed替换示例1.替换文件的第一行
下面的命令用“The Geek Stuff”代替文件的第一行。
$ sed '1 c\ > The Geek Stuff' thegeekstuff.txtThe Geek StuffDatabases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Sed替换示例2.替换与图案匹配的线
将具有“Linux系统管理员”模式的everyline替换为“Linux系统管理员 - 脚本”。
$ sed '/Linux Sysadmin/c \ > Linux Sysadmin - Scripting' thegeekstuff.txtLinux Sysadmin - ScriptingDatabases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available) Windows- Sysadmin, reboot etc.
Sed替换示例3.替换文件的最后一行
下面给出的sed命令将文件的最后一行替换为“文件的最后一行”。
$ sed '$ c\ > Last line of the file' thegeekstuff.txtLinux Sysadmin Databases - Oracle, mySQL etc. Security (Firewall, Network, Online Security etc) Storage in Linux Productivity (Too many technologies to explore, not much time available)Last line of the file
“=”是在sed中将当前行号打印到标准输出的命令。
Syntax: #sed '=' filename
上面的发送命令语法在第一行中打印行号,在下一行中打印来自文件的原始行。
sed'='命令只接受一个地址,所以如果你想为一系列行打印行号,你必须使用花括号。
Syntax: # sed -n '/PATTERN/,/PATTERN/ { = p }' filename
Sed行号示例1.找到包含该模式的行号
下面的sed命令打印与“数据库”模式匹配的行号
$ sed -n '/Databases/=' thegeekstuff.txt 2
Sed行号示例2.打印行号的范围
从模式“Oracle”到“生产力”打印行匹配的行号。
$ sed -n '/Oracle/,/Productivity/{ > = > p > }' thegeekstuff.txt2 Databases - Oracle, mySQL etc. 3 Security (Firewall, Network, Online Security etc) 4 Storage in Linux 5 Productivity (Too many technologies to explore, not much time available)
Sed行号示例3.打印文件中的行数
文件最后一行的行号将是文件中的总行数。模式$指定文件的最后一行。
$ sed -n'$ ='thegeekstuff.txt
猜你喜欢
- 2025-08-26 升级JDK17的理由,核心是降低GC时间
- 2024-11-04 Dockerfile 命令详解 dockerfile常用命令
- 2024-11-04 运维日记|那些年你可能会踩的坑—xtts篇
- 2024-11-04 oracle数据库访问控制配置(白名单)
- 2024-11-04 深入浅出!十三张图带你从源码了解SpringBoot启动流程!实战篇
- 2024-11-04 linux操作命令随笔 linux系统的操作命令
- 2024-11-04 Jenkins安装配置,项目发布、管理详解,史上最清晰,值得收藏!
- 2024-11-04 0034 使用table表格标签进行网页排版
- 2024-11-04 Java课程设计报告+源码-万年历的设计与实现
- 2024-11-04 Java 8之后的那些新特性(二):文本块 Text Blocks
你 发表评论:
欢迎- 最近发表
-
- 用AI做微信小程序的完整步骤_如何用ai制作微信表情包
- 自习室预约的微信小程序设计与实现-计算机毕业设计源码+LW文档
- 微信小程序开发入门指南_微信小程序开发入门教程
- 写字机器人好用吗? 组装就花了5个小时 还要学习软件、录入字体
- 白描网页版 - 高效准确且免费的OCR文字识别工具
- 字体图形面板与图标字体使用_字体图标的优势和劣势
- 作为前端工程师必须懂得的33个CSS核心概念
- Flutter程序员开发炫酷的登录页面 字体库运用 路由学习 源码分享
- 2025Q3开源字体盘点:让你的代码和文档'颜值'飙升!
- Agent杂谈:Agent的能力上下限及「Agent构建」核心技术栈调研分享~
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)