gpt4 book ai didi

file - 在 tcl 中,如何替换文件中的一行?

转载 作者:行者123 更新时间:2023-12-04 22:08:49 25 4
gpt4 key购买 nike

假设我打开了一个文件,然后将其解析为几行。然后我使用一个循环:

foreach line $lines {}

在循环内部,对于某些行,我想用不同的行替换文件内的它们。是否可以?还是我必须写入另一个临时文件,然后在完成后替换这些文件?

例如,如果文件包含
AA
BB

然后我用小写字母替换大写字母,我希望原始文件包含
aa
bb

谢谢!

最佳答案

对于纯文本文件,将原始文件移动到“备份”名称,然后使用原始文件名重写它是最安全的:

更新:根据Donal的反馈进行编辑

set timestamp [clock format [clock seconds] -format {%Y%m%d%H%M%S}]

set filename "filename.txt"
set temp $filename.new.$timestamp
set backup $filename.bak.$timestamp

set in [open $filename r]
set out [open $temp w]

# line-by-line, read the original file
while {[gets $in line] != -1} {
#transform $line somehow
set line [string tolower $line]

# then write the transformed line
puts $out $line
}

close $in
close $out

# move the new data to the proper filename
file link -hard $filename $backup
file rename -force $temp $filename

关于file - 在 tcl 中,如何替换文件中的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2818130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com