sed命令使用总结

sed命令在处理文本内容的时候,作用非常强大,例如:删除某行,替换,在某一行的后面增加一行等等功能。

假设此时有个文档(test.txt)内容如下:

a.a.a.a:10

b.b.b.b:40%

c.c.c.c:100


现在我要删除b.b这一行,命令如下:

sed -i '/b.b.b.b:40%/d' test.txt


现在我要把a.a这一行中的10替换成20,命令如下:

sed -i "/a.a.a.a:10/s/10/20/g" test.txt


现在我要在b.b这一行的后面添加一行e.e这种的东东,命令如下:

sed -i '/b.b.b.b:40%/a\e\.e\.e\.e:40' test.txt


我平常在工作中主要用到的就是以上几个,就可以满足我的工作需要了,写出来与大家一起共勉。。

Linux 系统中,`sed`(stream editor)是一个非常强大的文本处理工具,它允许用户通过脚本或命令行指令对文本进行流式处理,包括查找、替换、删除、插入等操作。以下将详细介绍如何使用 `sed` 命令进行文本替换和处理。 ### 基本语法 `sed` 的基本命令格式如下: ```bash sed [选项] '编辑命令' [输入文件] ``` 常见的选项包括: - `-n`:禁止自动输出,通常用于仅输出匹配的行。 - `-e`:允许多条编辑命令串联使用。 - `-i`:直接修改源文件(慎用)。 - `-f`:从脚本文件中读取编辑命令。 ### 文本替换 `sed` 最常用的功能之一是文本替换,其基本格式为: ```bash s/原字符串/替换字符串/标志 ``` 其中,`s` 表示替换操作,`/` 是分隔符,也可以使用其他字符(如 `#` 或 `:`)代替。 #### 示例 1:简单替换 将文本中的 `hello` 替换为 `hi`: ```bash sed 's/hello/hi/' filename.txt ``` #### 示例 2:全局替换 默认情况下,`sed` 只会替换每行中第一个匹配的内容。要替换所有匹配项,需添加 `g` 标志: ```bash sed 's/hello/hi/g' filename.txt ``` #### 示例 3:替换特定行 替换第 3 行中的内容: ```bash sed '3s/hello/hi/' filename.txt ``` 替换从第 5 行到第 10 行的内容: ```bash sed '5,10s/hello/hi/' filename.txt ``` ### 文本删除 删除匹配某模式的行: ```bash sed '/pattern/d' filename.txt ``` 删除第 2 到第 5 行: ```bash sed '2,5d' filename.txt ``` ### 插入与追加 在某行前插入内容(`i`)或在某行后追加内容(`a`): ```bash # 在匹配 "pattern" 的行前插入一行 sed '/pattern/i This is a new line' filename.txt # 在匹配 "pattern" 的行后追加一行 sed '/pattern/a This is a new line' filename.txt ``` ### 替换文件内容并保存 如果希望直接修改原文件,可以使用 `-i` 选项: ```bash sed -i 's/hello/hi/g' filename.txt ``` 此操作会直接修改 `filename.txt` 的内容,建议在使用前备份原文件。 ### 多条命令组合 可以使用 `-e` 选项执行多条命令: ```bash sed -e 's/hello/hi/' -e 's/world/universe/' filename.txt ``` 也可以将多条命令写入脚本文件,再通过 `-f` 选项调用: ```bash # script.sed s/hello/hi/ s/world/universe/ # 执行脚本 sed -f script.sed filename.txt ``` ### 总结 `sed` 是一个非常灵活且高效的文本处理工具,适用于自动化脚本中对文本的快速处理。通过掌握基本的替换、删除、插入等命令,可以显著提升 Linux 系统下的文本处理效率。在实际使用中,建议结合正则表达式以实现更复杂的文本匹配与替换操作[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值