从带有tr的字符串中删除换行符

问题描述 投票:0回答:1

我有一个包含带有换行符的字符串的文件,如下所示:

{"name": "John\n\nMeyer"}
{"name": "Mary\n\nSmith"}

如何使用tr工具删除它们?

我正在尝试,但是输出不好:

$ cat f.json | tr -s '\\n\\n' ' '
{" ame": "Joh Meyer"}
{" ame": "Mary Smith"}

使用Perl,相同的正则表达式可以正常工作:

$ cat f.json | perl -pe 's/\\n\\n/ /g'
{"name": "John Meyer"}
{"name": "Mary Smith"}
bash tr
1个回答
0
投票

尝试使用-dtr选项删除字符:

tr -d \\n

全部放在一起:

cat f.json | tr -d \\n

您不需要-s选项。 -str选项表示“压缩”。如果指定字符出现多次(保留一个字符),则挤压将删除该字符。

或者,为避免不必要地使用cat and pipe,您可以只编写如下代码:

tr -d \\n <f.json

另外一个注意事项:如果您的输入内容实际上没有换行符,而是反斜杠后跟一个'en',则不能使用tr删除它们-tr适用于单个字符。

© www.soinside.com 2019 - 2024. All rights reserved.