如何在字符串中添加新行并将其保存到bash中的文件中?

时间:2014-05-02 20:33:01

标签: bash shell awk sed tr

我只看到空格,没有换行。

script.sh:

STRING=$(echo "alpha,beta,gamma,delta" | tr "," "\n")
echo $STRING > string.txt

结果:

$ cat string.txt
alpha beta gamma delta

期望的结果

$ cat string.txt
alpha
beta
gamma
delta

2 个答案:

答案 0 :(得分:4)

尝试引用$STRING变量:

echo "$STRING" > string.txt

e.g:

$ STRING=$(echo "alpha,beta,gamma,delta" | tr "," "\n")
$ echo $STRING
alpha beta gamma delta
$ echo "$STRING"
alpha
beta
gamma
delta
$ 

答案 1 :(得分:3)

BASH / shell通常不会在没有引用的情况下正常工作,请务必在此处使用它来获取文件中的新行:

echo "$STRING" > string.txt

See official manual on world splitting(感谢格伦)