2012-11-12 37 views
0

作为我的需求的一部分,我需要在unix中为现有文件添加标题。对于我用编的文本编辑器从这个讨论了在编辑文本编辑器中将字符串作为变量使用unix

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 1","header 2","header 3" 
获得$头的值的代码

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

1","header 

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

PS:我正在使用Sun Solaris

回答

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 
+0

通过从“printf的改变独立参数 '0A \ n%s的\ n \ NW \ N',$头, “to”printf'0a \ n%s \ n。\ nw \ n'“$ header”“代码正常工作。感谢您的输入 :) – mvg