tcl 表达式重命名文件中的多个字符串
tcl expression to rename multiple strings in a file
在一个文件中,我有多个字符串,
valid_packet,
rst_int_reg,
write_enb,
enb_read,
state_lfd, ...
我必须按照以下格式重命名字符串
validpacket
lfd_state
read_enb
我写了一个表达式来重命名一些字符串
set signals " valid_packet, rst_int_reg, write_enb, read_enb, state_lfd, ..."
set signals [regsub "valid_packet" $signals "validpacket"]
set signals [regsub "enb_read" $signals "read_enb"]
set signals [regsub "state_lfd" $signals "lfd_state"]
puts $signals
对于每个字符串,我必须写相同的表达式,所以有没有优化的方法,因为如果我必须重命名文件中的许多字符串,我需要重复相同的表达式。
使用 string map
可以更好地完成此操作,它可以一次性转换整个文本中的许多不同单词,但您仍然需要写出要更改的内容,因为那里没有'这似乎是一种普遍模式(至少在 regular-expression 意义上)。
set signals " valid_packet, rst_int_reg, write_enb, read_enb, state_lfd, ..."
# This is a list of changes to do, but I like to put each transform on its own line
set mapping {
"valid_packet" "validpacket"
"enb_read" "read_enb"
"state_lfd" "lfd_state"
}
# Apply the mapping
set signals [string map $mapping $signals]
puts $signals
在一个文件中,我有多个字符串,
valid_packet,
rst_int_reg,
write_enb,
enb_read,
state_lfd, ...
我必须按照以下格式重命名字符串
validpacket
lfd_state
read_enb
我写了一个表达式来重命名一些字符串
set signals " valid_packet, rst_int_reg, write_enb, read_enb, state_lfd, ..."
set signals [regsub "valid_packet" $signals "validpacket"]
set signals [regsub "enb_read" $signals "read_enb"]
set signals [regsub "state_lfd" $signals "lfd_state"]
puts $signals
对于每个字符串,我必须写相同的表达式,所以有没有优化的方法,因为如果我必须重命名文件中的许多字符串,我需要重复相同的表达式。
使用 string map
可以更好地完成此操作,它可以一次性转换整个文本中的许多不同单词,但您仍然需要写出要更改的内容,因为那里没有'这似乎是一种普遍模式(至少在 regular-expression 意义上)。
set signals " valid_packet, rst_int_reg, write_enb, read_enb, state_lfd, ..."
# This is a list of changes to do, but I like to put each transform on its own line
set mapping {
"valid_packet" "validpacket"
"enb_read" "read_enb"
"state_lfd" "lfd_state"
}
# Apply the mapping
set signals [string map $mapping $signals]
puts $signals