linux 替换文件中的字符串——sed

sed -i 's/str1/str2/g'  filename

str1: 被替换的字符串

str2: 替换成的字符串

### 使用 `sed` 命令将修改后的内容保存到新文件 为了实现这一目标,可以利用重定向操作符 (`>`) 将 `sed` 处理的结果写入指定的新文件中。具体来说,在命令行上构建 `sed` 指令来编辑源文件内容,并通过管道或直接使用输出重定向将其结果存储至另一位置。 对于简单的替换操作,比如把某字符串全部替换成其他字符串并另存为新文档: ```bash sed 's/unix/linux/g' oldfile.txt > newfile.txt ``` 上述指令会读取 `oldfile.txt` 文件内的每一行数据,按照给定模式全局替换其中出现的 "unix" 字样为 "linux"[^1],最终生成名为 `newfile.txt` 的全新文件存放更改过的信息副本而不影响原始档案。 当涉及更复杂的多条命令组合时,则需借助 `-e` 参数依次定义各个动作,之后同样采用重定向手段完成导出工作: ```bash sed -e 'command1' -e 'command2' input_file > output_file ``` 这里展示了如何串联两个以上的独立转换逻辑应用于单次流处理过程之中[^3]。值得注意的是,如果希望保留原文件不变而仅创建更新版本的数据集,务必确保指定了不同于输入路径的目标地址作为输出端口。 另外一种方法是运用 `-i.bak` 或者单纯的 `-i` 选项让 `sed` 自动备份旧版的同时就地改写现有文件;不过这并不适用于本场景下所描述的需求——即保持原有资料完好无损的前提下建立经过调整后的副件[^4]。 #### 示例:基于特定条件筛选记录并转移至新文件 假设存在一个用户列表 `/etc/passwd` ,现计划提取所有属于 `demo` 用户的相关配置项并将它们单独摘录出来形成新的纯文本文件: ```bash sed '/demo/!d' /etc/passwd > demo_user_info.txt ``` 此段脚本的作用是从标准 Linux 系统账户数据库里挑选含有关键字 `demo` 的那一行列印出来,其余部分均会被丢弃不予理会,最后所得成果将会被安全地安置于叫做 `demo_user_info.txt` 的外部载体之上[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值