如何用包含换行符的字符串替换文件的内容?

时间:2014-05-11 23:36:36

标签: linux bash shell scripting

当我将“line1 \ nline2 \ nline3”读入字符串时,如下所示:

read string

line1\nline2\nline3

然后回显字符串并将输出定向到文件:

echo $string > text.txt

txt文件现在包含:

line1nline2nline3

我怎样才能使文件包含:

line1
line2
line2

感谢。

3 个答案:

答案 0 :(得分:2)

这里的问题是\n并不意味着换行。这只是不必要地逃避n的价值。

要做你想做的事,你应该。

  1. 以保留反斜杠的方式读取字符串
  2. 展开任何转义序列并将字符串写出
  3. 您可以执行1. read -r和2. echo -e

    read -r string
    echo -e "$string"
    

答案 1 :(得分:0)

只需将$string放在双引号中:

echo "$string" > text.txt

答案 2 :(得分:0)

您需要添加双引号。

示例:

$ example=line1\nline2
$ echo $example
line1nline2

双引号:

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

保存:

$ echo $example >> example.txt
$ cat example.txt
line1
line2