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



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

data/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

我在输出中得到了这样的输出.csv

value=$test1
value1=$test2
value2=$test2

但输出应该如下所示

value=A
value1=B
value2=C

更改

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

文档:实质性

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

请参阅 subst 命令的文档。

您还有一些拼写错误需要清理 - 重复 test1 或 test2 而不是使用 test1 test2 test3。

最新更新