Mac终端:使用export = $(sed ...)设置变量意外

时间:2016-12-07 13:01:18

标签: bash macos sed terminal

我正在尝试使用导出功能将文件内容保存到变量中。但是我需要将所有换行符更改为\ n之前。我正在尝试使用sed命令。

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

示例文本文件:

#
#
#
#
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 个答案:

答案 0 :(得分:0)

只需删除=周围的空格,然后在$(...)周围添加双引号:

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