我有文本文件,其中包含一些值,我希望通过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=$test2
也value2=$test3
。
文档:实质性
而不是puts $mdata_file $sql_query
试试puts $mdata_file [subst $sql_query]
请参阅 subst 命令的文档。
您还有一些拼写错误需要清理 - 重复 test1 或 test2 而不是使用 test1 test2 test3。