TCL:How 读取文件的每一行并拆分每一列并将其保存为变量
TCL:How to read each line of a file and split each column and save it as a variable
我想一次读取一个文件,拆分它的列并将其保存在变量中。
文件如下所示:
%% cat Memory_minus.list
MEM_rf_2p_hce_1024x8_naxos1 RF dual_port 1024 8
MEM_rf_2p_hce_128x18_naxos1 RF dual_port 128 18
MEM_rf_2p_hce_16x128_fusion RF dual_port 16 128
MEM_rf_2p_hce_16x80_fusion4 RF dual_port 16 80
MEM_rf_2p_hce_256x18_naxos1 RF dual_port 256 18
MEM_rf_2p_hce_256x8_naxos1 RF dual_port 256 8
在单个 foreach 循环(一行)中,我希望将所有 5 列都转换为变量,例如,对于第一行,每个变量应该 return 在后面。
puts $var1 ->>> MEM_rf_2p_hce_1024x8_naxos1
puts $var2 ->>> RF
puts $var3 ->>> dual_port
puts $var4 ->>> 1024
puts $var5 ->>> 8
我尝试编写代码逐行读取文件,然后提取项目,但没有成功。
set f [open Memory_minus.list]
while {1} {
set line [gets $f]
if {[eof $f]} {
close $f
break
}
#set base_name [exec awk {{print }} $line ]
foreach lt $line {
puts $lt
}
}
$lt return 整个加扰输出。
set fp [open input.txt r]
while {[gets $fp line]!=-1} {
# To make sure that the line has five words
if {[llength $line]!=5} {
puts "Incorrect format in the line -> '$line'"
continue
}
foreach {var1 var2 var3 var4 var5} $line {
puts ->>>$var1;puts ->>>$var2;puts ->>>$var3;puts ->>>$var4;puts ->>>$var5;
}
}
close $fp
输出:(仅显示第一行的输出)
->>>MEM_rf_2p_hce_1024x8_naxos1
->>>RF
->>>dual_port
->>>1024
->>>8
我想一次读取一个文件,拆分它的列并将其保存在变量中。 文件如下所示:
%% cat Memory_minus.list
MEM_rf_2p_hce_1024x8_naxos1 RF dual_port 1024 8
MEM_rf_2p_hce_128x18_naxos1 RF dual_port 128 18
MEM_rf_2p_hce_16x128_fusion RF dual_port 16 128
MEM_rf_2p_hce_16x80_fusion4 RF dual_port 16 80
MEM_rf_2p_hce_256x18_naxos1 RF dual_port 256 18
MEM_rf_2p_hce_256x8_naxos1 RF dual_port 256 8
在单个 foreach 循环(一行)中,我希望将所有 5 列都转换为变量,例如,对于第一行,每个变量应该 return 在后面。
puts $var1 ->>> MEM_rf_2p_hce_1024x8_naxos1
puts $var2 ->>> RF
puts $var3 ->>> dual_port
puts $var4 ->>> 1024
puts $var5 ->>> 8
我尝试编写代码逐行读取文件,然后提取项目,但没有成功。
set f [open Memory_minus.list]
while {1} {
set line [gets $f]
if {[eof $f]} {
close $f
break
}
#set base_name [exec awk {{print }} $line ]
foreach lt $line {
puts $lt
}
}
$lt return 整个加扰输出。
set fp [open input.txt r]
while {[gets $fp line]!=-1} {
# To make sure that the line has five words
if {[llength $line]!=5} {
puts "Incorrect format in the line -> '$line'"
continue
}
foreach {var1 var2 var3 var4 var5} $line {
puts ->>>$var1;puts ->>>$var2;puts ->>>$var3;puts ->>>$var4;puts ->>>$var5;
}
}
close $fp
输出:(仅显示第一行的输出)
->>>MEM_rf_2p_hce_1024x8_naxos1
->>>RF
->>>dual_port
->>>1024
->>>8