2016-12-07 89 views
0

我试图使用导出功能将文件的内容保存到变量中。不过,我需要将所有换行符改为\ n。我正在尝试为此使用sed命令。

当我单独使用sed命令时,会得到预期结果。但是,如果我试图直接将结果保存到使用导出的变量中,我会得到一些意想不到的结果。我是这个主题的新手,我可以找到任何信息,为什么它应该采取不同的行动。

示例文本文件:

# 
# 
# 
# 
some text 
some more text 

test 

# 
# 
# 

使用以下命令一切我没事运行:

sed -z ':a;N;$!ba;s/\n/\\n/g' /path/to/file 

以下但这两个不工作:

export TextInOneLine = $(sed -z ':a;N;$!ba;s/\n/\\n/g' /path/to/file') 
export TextInOneLine = 'sed -z ':a;N;$!ba;s/\n/\\n/g' /path/to/file' 

我得到以下错误:

-bash: export: `=': not a valid identifier 
-bash: export: `#': not a valid identifier 
... 

我不知道我做错了,也许有人可以帮我

+1

删除围绕'='的空格,并在$(...)' – mouviciel

+0

附近添加双引号,谢谢你的工作!,如果你创建一个完整的答案,我会把它标记为强制 – Philipp

回答

0

只是删除空格周围=并添加双引号$(...)

export TextInOneLine="$(sed -z ':a;N;$!ba;s/\n/\\n/g' /path/to/file')"