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

如何用Bash sed将文本行尾替换为单引号加逗号?

解决sed行尾替换为单引号加逗号的问题

你遇到的问题是shell引号解析规则导致的,原命令里的单引号未正确闭合,所以shell一直等待输入来补全引号。以下几种方法可以解决:

  • 方法一:用双引号包裹sed脚本
    双引号内可直接包含单引号,shell不会对其做特殊解析:

    sed "s#$#',#g" test.txt
    
  • 方法二:单引号拼接转义单引号
    在shell中,通过\'输出单引号,将sed脚本拆分为多个单引号包裹的部分拼接:

    sed 's#$#'\'',#g' test.txt
    

    逻辑是:'s#$#' + \'(输出单引号) + ',#g',shell会自动合并为完整的替换规则。

  • 方法三:用ASCII码表示单引号
    sed支持用\x27代表ASCII码为0x27的单引号,无需处理引号冲突:

    sed 's#$#\x27,#g' test.txt
    

执行任意一种命令后,test.txt内容会变为你期望的结果:

aaa',
bbb',
ccc',

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:07:02