在编辑文本编辑器unix中将String作为变量传递

时间:2012-11-12 07:27:12

标签: unix ed

我需要在unix中为现有文件添加标题,作为我的要求的一部分。为此,我使用了ed文本编辑器从这个讨论

How can I add a line to a file in a shell script?

这是我使用的代码

printf '0a\n%s\n.\nw\n',$header, | ed "./runtime/"$outputFileName

我从另一个

文件中获取了$ header的值
"header 1","header 2","header 3"

执行脚本后,当我检查输出文件的第一行文件时,只包含这一行

1","header

如何将整行添加到输出文件中?请帮忙。提前谢谢。

PS:我正在使用Sun Solaris

1 个答案:

答案 0 :(得分:3)

请务必正确使用printf。 (1)引用标题(2)用空格分隔参数

echo '"header 1","header 2","header 3"' > test.txt
header="$(cat header.txt)"
printf '0a\n%s\n.\nw\n' "$header"

结果

0a
"header 1","header 2","header 3"
.
w