使用 tr 用空格替换换行符[重复]

Posted

技术标签:

【中文标题】使用 tr 用空格替换换行符[重复]【英文标题】:Using tr to replace newline with space [duplicate] 【发布时间】:2014-11-07 17:20:43 【问题描述】:

有来自sed的输出:

http://sitename.com/galleries/83450
72-profile

这两个字符串应该合并为一个并用空格分隔,例如:

http://sitename.com/galleries/83450 72-profile

两个字符串被流水线化到tr,以便用空格替换换行符:

tr '\n' ' '

而且不工作,结果和输入一​​样。

用 ASCII 码 '\032' 表示空格会导致将 \n 替换为不可打印的字符。

怎么了?我在 Windows 上使用 Git Bash。

【问题讨论】:

我用相同的语法测试了一个带有换行符的文本文件到 tr 并且它可以工作。你管的怎么样?该文件是否有换行符和换行符?也许试试 "tr '\r\n' ' '" 为什么会被标记为重复?链接的问题专门询问了using sed,这不是这个问题的目的(using tr)。尽管目标相同,但提问者或查看者可能有很多原因只想使用 tr 和 tr。 【参考方案1】:

最好的猜测是你在 windows 上并且你的行尾设置是为 windows 设置的。 看到这个话题:How to change line-ending settings

或使用:

tr '\r\n' ' '

【讨论】:

同意 windows 行尾。快速修复是dos2unix file。祝大家好运。 脚本仍然有'\r'。但它看起来并不适合你想要的。它会将所有内容放在一行上,而不仅仅是一次 2 行,然后您的 FOR 循环将始终只执行一次。

以上是关于使用 tr 用空格替换换行符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 Python - 用单个空格替换换行符、制表符、空格的任意组合[重复]

如何在bash中将空格替换为新行[重复]

如何从句子中删除多余的空格、制表符和换行符,并仅用一个空格替换它们? [复制]

如何使用 C# 在给定文本中用忽略空格、回车或换行符替换字符串

js用正则把换行br替换为段落p

PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式