AI机器人 统计
  • 文章总数:249 篇
  • 评论总数:36 条
  • 分类总数:11 个
  • 最后更新:5天前

Linux 文本三剑客之sed

本文阅读 4 分钟
首页 Linux命令 正文

sed.png

sed概述

sed,全称为"stream editor",意为流式编辑器。它是一个用于处理文本数据的非交互式命令行工具。sed可以读取文本数据,对其进行编辑和转换,然后将结果输出到标准输出或文件中。sed通过编写简洁的脚本,实现批量、自动化的文本处理。
sed处理方式

sed基本语法

sed的基本语法如下:
sed [option]... 'script;script;...' [inputfile...]

常用选项

-n 不输出模式空间内容到屏幕,即不自动打印
-e 多点编辑
-f FILE 从指定文件中读取编辑脚本
-r, -E 使用扩展正则表达式
-i.bak 备份文件并原处编辑
-s           将多个文件视为独立文件,而不是单个连续的长文件流
#说明:
-ir   不支持
-i -r 支持
-ri   支持
-ni   危险选项,会清空文件

script 格式

'地址命令'

地址格式

1. 不给地址:对全文进行处理
2. 单地址:
   #:指定的行,$:最后一行
   /pattern/:被此处模式所能够匹配到的每一行
3. 地址范围:
   #,#     #从#行到第#行,3,6 从第3行到第6行
   #,+#   #从#行到+#行,3,+4 表示从3行到第7行
   /pat1/,/pat2/
   #,/pat/
   /pat/,#
4. 步进:~
     1~2 奇数行
     2~2 偶数行

命令

p 打印当前模式空间内容,追加到默认输出之后
Ip 忽略大小写输出
d 删除模式空间匹配的行,并立即启用下一轮循环
a [\]text 在指定行后面追加文本,支持使用\n实现多行追加
i [\]text 在行前面插入文本
c [\]text 替换行为单行或多行文本
w file 保存模式匹配的行至指定文件
r file 读取指定文件的文本至模式空间中匹配到的行后
= 为模式空间中的行打印行号
! 模式空间中匹配行取反处理
q           结束或退出sed

查找替代

s/pattern/string/修饰符 查找替换,支持使用其它分隔符,可以是其它形式:s@@@,s###
替换修饰符:
g 行内全局替换
p 显示替换成功的行
w   /PATH/FILE 将替换成功的行保存至文件中
I,i   忽略大小写` 
## 常用sed操作
### 文本替换
使用's'命令进行替换操作:
 `sed 's/原字符串/替换字符串/' 文件名

删除行

使用'd'命令进行删除操作:
sed '行号d' 文件名

插入文本

使用'i'命令进行插入操作:
sed '行号i\插入的文本' 文件名

追加文本

使用'a'命令进行追加操作:
sed '行号a\追加的文本' 文件名

sed实例

替换文本中的特定字符串
sed 's/old/new/' input.txt > output.txt
删除文本中的空白行
sed '/^$/d' input.txt > output.txt
在特定行后追加文本
sed '3a\This is a new line.' input.txt > output.txt

本文来自投稿,不代表本站立场,如若转载,请注明出处:
Linux Top命令:系统性能监控的利器
« 上一篇 04-24
Linux文本三剑客之awk基本使用
下一篇 » 04-24

发表评论

发表评论

作者信息

动态快讯

    请配置好页面缩略名选项

热门文章

标签TAG

热评文章