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

How to pass modify value to user define output file using Tcl script?

我有一个包含一些值的文本文件,我想通过 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

改变

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

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

请参阅 subst command 的文档。

您还有一些拼写错误需要清理 - 重复测试 1 或测试 2 而不是使用测试 1 测试 2 测试 3。