You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用sed进行替换追加操作时如何保留目标内容的前导空格

空格丢失是sed a(追加)命令的默认行为,sed解析a后的参数时会自动丢弃插入内容的前导空白。

对应解决方案

场景1:需要在匹配'hello'的行后追加带前导空格的内容

在插入内容的最前面加一个反斜杠\,即可告诉sed保留后续的前导空格:

sed "/'hello',/a\    'good bye'" myfile.txt

如果使用的是macOS自带的BSD sed,需要在反斜杠后加换行再写插入内容:

sed "/'hello',/a\
    'good bye'" myfile.txt

场景2:需要直接将'hello'替换为带前导空格的内容

更推荐使用替换命令s,不会出现前导空格丢失的问题:

# 替换行内所有匹配的'hello'
sed "s/'hello'/    'good bye'/g" myfile.txt

# 替换整行完全匹配'hello'的行
sed "/^'hello'$/c\    'good bye'" myfile.txt

如果需要直接修改原文件,GNU sed(Linux发行版默认内置)追加-i参数即可,BSD sed(macOS默认内置)需追加-i ''参数。

内容的提问来源于stack exchange,提问作者user17049514

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:45:01