如何使用新行字符将sed的结果存储在变量中

时间:2012-02-24 16:58:52

标签: bash shell scripting sed

我尝试以这种方式存储sed的数据,

line=$(sed 's/old/new/g' data.t)

但问题是换行符不会存储在变量中。 sed命令产生一个输出,其中有新行,变量不存储新行,而我想存储它们。 如何在变量中存储换行符?

3 个答案:

答案 0 :(得分:2)

换行符就在那里,您只需要正确引用该变量即可查看。 echo对于检查变量不是一个很好的命令,但这应该像你想要的那样工作:

echo "$line"

答案 1 :(得分:1)

试试这个

line="$(sed 'a/old/new/s' data.t)"

echo "$line"

我不确定你的sed cmd,'a / old / new / s'。我希望看到像's / old / new / g'这样的东西,但祝你好运。

我希望这会有所帮助。

答案 2 :(得分:1)

它确实保留了换行符,但是在使用它时要查看它们,你需要加倍引用它

$ a=$(echo -e "a\nb\nc")
$ echo $a
a b c
$ echo "$a"
a
b
c