在 TCL 中,如何删除字符串中的子字符串并且还必须对文件中的不同字符串执行此操作

In TCL, how to remove a substring in a string and also have to do it for different string in a file

在 Tcl 中,我尝试通过以下表达式删除字符串中的子字符串,但是 目前,我不得不一次又一次地重复相同的命令,以从不同的字符串中删除不同的子字符串,所以这不是有效的方法,我想要一种更好的方法, 能不能写成一个表达式

file.v
   axi_p_awaddr_reg
   s_ph_awlen_i_reg
   l_ha_awsize_reg
   s_axi_wdata_reg

set k [format {%s} [string map {{_awaddr} {}} $k]]
set k [format {%s} [string map {{_awsize} {}} $k]]
set k [format {%s} [string map {{_wdata} {}} $k]]
set k [format {%s} [string map {{_awlen} {}} $k]]

如果我们假设需求确实是从一个字符串 k 中删除多个子字符串,您可以这样做:

set k [string map {_awaddr {} _awsize {} _wdata {} _awlen {}} $k]