我在 tcl 文件中有类似下面的内容。
array set myports {
a
b
c
d
e
}
array set myports {
g
h
i
j
K
l
}
如何对文件进行简单的 grep 并打印数组中的元素?
答案1
这个 awk 命令怎么样:
awk '/array set myports {/ {for (i=5; i<=NF; i++) {if ($i == "}") {break} else {printf("%s ", $i)}}} END {printf("\n")}' test.in
希望这可以帮助
答案2
如果可以的话执行Tcl 文件,然后您可以运行一个小包装 Tcl 脚本来提取值:
$ cat file.tcl
array set A { hello world how are you today }
$ values=$( tclsh <<END_TCL
source file.tcl
parray A
END_TCL
)
$ echo "$values"
A(hello) = world
A(how) = are
A(you) = today