我需要在shell中用换行符替换文字\n

我需要在shell中用换行符替换文字\n,shell,replace,newline,Shell,Replace,Newline,我们收到一个实质上是ssh令牌密钥的文件。 比如说,《盗梦空间》有其价值 Foo\nBarFoo,\nFoo\nBarFoo 现在,我想用 Foo BarFoo, Foo BarFoo 我通过在变量中复制整个键,尝试了sed和tr命令。 似乎有效的一件事是:%s/\\n/\r/g,但这是不可接受的,因为我无法打开vi编辑器 我最近尝试了echo-e'Foo\nBarFoo\nFoo\nBarFoo,但我想说得更微妙一些。您正面临这个问题,因为您可能正在使用OSX或BSD。使用GNU sed,

我们收到一个实质上是ssh令牌密钥的文件。 比如说,《盗梦空间》有其价值

Foo\nBarFoo,\nFoo\nBarFoo
现在,我想用

Foo
BarFoo,
Foo
BarFoo
我通过在变量中复制整个键,尝试了
sed
tr
命令。 似乎有效的一件事是
:%s/\\n/\r/g
,但这是不可接受的,因为我无法打开
vi
编辑器


我最近尝试了
echo-e'Foo\nBarFoo\nFoo\nBarFoo
,但我想说得更微妙一些。

您正面临这个问题,因为您可能正在使用
OSX
BSD
。使用
GNU sed
的/\\n/\n/g'
应该可以工作

对于POSIX sed,请使用

echo "Foo\nBarFoo,\nFoo\nBarFoo" | sed 's/\\n/\
/g'

您正面临这个问题,因为您可能正在使用
OSX
BSD
。使用
GNU sed
的/\\n/\n/g'
应该可以工作

对于POSIX sed,请使用

echo "Foo\nBarFoo,\nFoo\nBarFoo" | sed 's/\\n/\
/g'

在sed中使用该模式有什么问题?回答你的问题。在你问之前先搜索一下。你试过什么?什么东西没用
我通过复制变量中的整个键尝试了sed和tr命令
您到底尝试了什么?只需给出示例命令,示例输出,这样的小代码片段帮助很大。注意,有一个
ed
命令,它在批处理模式下准确地执行
vi
类命令。而且,不仅仅是
echo':%s/\\n/\r/g'| vi input_文件
work?@Mihir那篇文章是关于用另一个字符替换换行符。这是关于用换行符替换字符串
\n
。这些不是重复的。@KamilCuk,谢谢你指出这一点,我的错误。在sed中使用这种模式有什么问题?回答你的问题。在你问之前先搜索一下。你试过什么?什么东西没用
我通过复制变量中的整个键尝试了sed和tr命令
您到底尝试了什么?只需给出示例命令,示例输出,这样的小代码片段帮助很大。注意,有一个
ed
命令,它在批处理模式下准确地执行
vi
类命令。而且,不仅仅是
echo':%s/\\n/\r/g'| vi input_文件
work?@Mihir那篇文章是关于用另一个字符替换换行符。这是关于用换行符替换字符串
\n
。这些不是重复的。@KamilCuk,谢谢你指出我的错误。我也试过
sed]:a;N、 美元!文学士;s/\n/\\n/g'
,将文本替换为换行符;N、 美元!文学士;s/\n/\\n/g',将文字替换为换行符。