【sed】替换的简单用法

 测试数据test:

===================

123234
34324
zhourunfa male 55
liudehua male 10

===================

1. 将文本中的zhou替换为zhoujie

    sed 's/zhou/zhoujie/' test

2. 将文本中zhou替换为zhoujie,并且把liu替换为liubang,有三种方法

2.1  sed 's/liu/liubang/;s/zhou/zhoujie/'  test

2.2  sed  -e 's/liu/liubang/' -e 's/zhou/zhoujie/'  test

2.3  sed -f replace.sed  test

replace.sed的内容如下:

===================

s/ 55/,55sui/
s/ 10/,10sui/

===================

### 使用 `sed` 实现文本替换 在 Linux 中,`sed` 是一种强大的流编辑器工具,能够高效完成文本替换操作。以下是关于如何通过 `sed` 进行文本替换的具体方法: #### 1. 基本语法 `sed` 的基本语法结构如下: ```bash sed 's/旧字符串/新字符串/选项' 文件名 ``` 其中,“s”表示替换(substitute),“旧字符串”是要被替换的部分,“新字符串”是替换成的目标部分。“选项”可以控制替换的行为。 #### 2. 替换整个文件中的特定内容 如果希望在整个文件中查找并替换所有的匹配项,则可以使用全局标志 “g”。例如,将文件 `example.txt` 中的所有单词 “oldword” 替换为 “newword”,可运行以下命令[^1]: ```bash sed 's/oldword/newword/g' example.txt ``` #### 3. 替换每行的第一个匹配项 如果不带任何额外参数,默认情况下只会在每一行找到的第一个匹配项上执行替换动作。比如仅替换每行第一次出现的 “firstoccurrence” 字符串为 “replacedtext”[^2]: ```bash sed 's/firstoccurrence/replacedtext/' yourfile.txt ``` #### 4. 指定范围内的替换 可以通过指定行号来限定哪些行应该应用该替换规则。例如要修改第5至第8行之间所有实例中的某个词组可以用下面这样的形式: ```bash sed '5,8 s/targetstring/replacementstring/g' filename ``` #### 5. 将更改保存回原文件 默认情况下,`sed` 不会改变原始文件而是打印修改后的版本到屏幕上。 若要直接更新源文件本身而不是仅仅显示结果,则需加上 `-i` 参数: ```bash sed -i 's/pattern/replacment/g' original_file ``` #### 示例代码展示 这里提供一段完整的脚本来演示上述功能之一——批量重命名目录下的多个图片文件扩展名为 `.jpg`: ```bash #!/bin/bash for file in *.png; do mv "$file" "$(basename "$file" .png).jpg" done # 或者利用 sed 来做同样的事情 ls | grep ".png$" | while read line ;do newname=$(echo $line|sed 's/.png$/.jpg/');mv ${line} ${newname}; done ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值