gpt4 book ai didi

regex - 在 tcl 脚本中使用 awk

转载 作者:行者123 更新时间:2023-12-04 16:45:34 25 4
gpt4 key购买 nike

我想在 TCL 脚本中打印文件中的特定列号字段。

我试过 exec awk '{print $4}' foo其中 foo 是文件名,但它不工作,因为它给出了错误
can't read "4": no such variable
如何在 tcl 脚本中执行 awk 以上的操作?

谢谢,

最佳答案

问题是单引号在 Tcl 中没有特殊意义,它们只是字符串中的普通字符。因此$4没有对 Tcl 隐藏,它试图扩展变量。

等效于 shell 单引号的 Tcl 是大括号。这是你需要的:

exec awk {{print $4}} foo

双花括号看起来很有趣,但是外面的一对是用于 Tcl 的,而里面的那对是用于 awk 的。

顺便说一句,那个 awk 程序的 Tcl 翻译是:
set fid [open foo r]
while {[gets $fid line] != -1} {
set fields [regexp -all -inline {\S+} $line]
puts [lindex $fields 3]
}
close $fid

关于regex - 在 tcl 脚本中使用 awk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16990116/

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