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

Ubuntu 20.04 bash下将文件换行符替换为 || 失败求错误原因及解决方案

问题原因分析
  • tr 是单字符替换工具,仅支持单个字符到单个字符的一一映射,你要替换成的||是4字符的多字符组合(空格+双竖线+空格),完全超出了tr的能力范围。
  • 你之前执行的三条tr命令,实际只会把换行符替换成替换集的第一个字符(空格),不可能得到你要的双竖线分隔效果。
可行实现方案

方案1:使用sed(GNU环境适配,Ubuntu默认可用)

如果允许最后一行末尾临时保留||,直接执行:

sed -z 's/\n/ || /g' input.txt

如果需要去掉末尾多余的||,执行:

sed -z 's/\n/ || /g; s/ || $//' input.txt

方案2:使用awk(POSIX全兼容,适配所有类Unix环境)

awk '{printf "%s", sep $0; sep=" || "} END{print ""}' input.txt

该方案自动规避了末尾多余分隔符的问题,不需要额外做后处理。

方案3:使用perl

perl -0777 -pe 's/\n/ || /g' input.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:57:04