将命令输出保存在字符串变量中,并保留换行符

5
我是一名有用的助手,可以为您进行翻译。以下是需要翻译的内容:

我有一个脚本,可以转换文件的数据。为了更有效地工作,我想在内存中修改数据,然后将其转储到文件中。 假设我想修改包含以下内容的文件:

> This is a line
> this is other line

我使用sed命令将'>'符号替换为'#':

transform_output=$(eval "sed ${sed_args[@]} $file" 2>&1)
echo -e $transform_output

我得到输出:
# This is a line # this is other line

我想要的输出结果是:

# This is a line
# this is other line
  1. 如何将输出保存在字符串变量中并保留换行符?
  2. 我该如何在包含“#ADDED LINE#”的变量开头添加一行并将其保存到文件中?

(我想要获得的文件应该是):

#ADDED LINE#
# This is a line
# this is other line

感谢您的提前帮助。

可能是这样。在我提问之前的研究中没有找到它,发现了其他东西,但不是我要找的。 - Nico Rodsevich
1个回答

6
  1. 引号用于防止单词在空格处分割:

    echo -e "$transform_output"

  2. 将命令与另一个echo组合使用:

    { echo "#添加的行#"; echo -e "$transform_output" } > file


太感谢了,伙计! 简单到不敢相信! - Nico Rodsevich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接