2014-05-11 45 views
0

當我讀到「行1 \ nline2 \ nline3」成一個字符串,像這樣:如何用包含新行字符的字符串替換文件的內容?

read string 

line1\nline2\nline3 

然後呼應串並直接輸出到一個文件:

echo $string > text.txt 

TXT文件現在包含:

line1nline2nline3 

我怎麼可能讓這個文件包含:

line1 
line2 
line2 

謝謝。

回答

2

的這裏的問題是,\n並不意味着換行。這只是不必要地逃避n的價值。

要做你想做的,你應該做的。

  1. 閱讀,保留反斜槓
  2. 展開任何轉義序列,寫串出

你可以做1. read -r和2. echo -e方式的字符串:

read -r string 
echo -e "$string" 
+0

+1爲正確的答案。對於OP,請閱讀[BashFAQ/001](http://mywiki.wooledge.org/BashFAQ/001)瞭解更多詳情。 –

0

只要把$string在雙引號:

echo "$string" > text.txt 
0

您需要添加雙引號。

例子:

$ example=line1\nline2 
$ echo $example 
line1nline2 

用雙引號:

$ example="line1\nline2" 
$ echo $example 
line1 
line2 

保存:

$ echo $example >> example.txt 
$ cat example.txt 
line1 
line2 
相關問題