如何使用Tcl脚本将修改值传递给用户定义输出文件?

时间:2016-01-19 08:00:09

标签: tcl

我有一些文本文件,其中包含一些我希望通过TCL脚本将值传递给output.csv文件的值,但是我无法将值传递给输出文件,因为它是输出文件的值。

数据/usr/local/test/etc/file.txt

value=$test1
value1=$test2
value2=$test2
#!/usr/local/bin/tclsh

set test1 A
set test1 B
set test1 C

set fileN "output.csv"
set mdata_file [open [file join "/usr/out/input" $fileN] a]
set sql_file [open "/usr/local/test/etc/file.txt" r]
set sql_query [read $sql_file]
puts $mdata_file $sql_query
exit 0

我在output.csv

中得到这样的输出
value=$test1
value1=$test2
value2=$test2

但输出应该如下

value=A
value1=B
value2=C

2 个答案:

答案 0 :(得分:1)

变化

puts $mdata_file $sql_query

puts $mdata_file [subst $sql_query]

subst命令对字符串执行替换。除非使用它,否则输入文件的确切内容将被复制到输出文件中。

您可能想要更改

set test1 A
set test1 B
set test1 C

set test1 A
set test2 B
set test3 C

value2=$test2value2=$test3也是。

文档:subst

答案 1 :(得分:0)

而不是puts $mdata_file $sql_query 试试puts $mdata_file [subst $sql_query]

请参阅subst command的文档。

你也有一些打字错误 - 重复test1或test2而不是使用test1 test2 test3。