2016-12-07 23 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')"