用AWK命令包装TCL / TK文件

时间:2014-01-11 21:59:27

标签: linux awk tcl tk

我创建了一个简单的TCL / TK文件,其中包含一个执行awk命令的按钮:

#!/usr/bin/env wish
package require Tk
pack [button .b -text "process" -command {exec awk {$1=="aa" {print $0}} ./input.txt > ./temp.txt}]

使用freewrap我在Windows(.exe)上使这个文件可执行,当我按下按钮时出现这样的错误:

错误:无法执行“awk”:没有这样的文件或目录

有没有办法将awk包含/添加到.exe输出文件中,或者将awk libraires作为外部文件或其他方式附加到.exe,以便在不重写WCL命令的情况下识别awk命令?

此致

2 个答案:

答案 0 :(得分:2)

awk {$1=="aa" {print $0}} ./input.txt > ./temp.txt

在Tcl中:

set in [open ./input.txt r]
set out [open ./temp.txt w]
while {[gets $in line] != -1} {
    set firstword [lindex [split [string trim $line]] 0]
    # or: regexp {\S+} $line firstword
    if {$firstword eq "aa"} {puts $out $line}
}
close $in
close $out

答案 1 :(得分:1)

你在这里展示的awk代码很简单,很容易在tcl中重写。

但是如果没有这个,你想知道一个解决方案,所以你需要在你的计算机上安装一个awk exe。 人们可以在这里找到一个可执行文件:http://gnuwin32.sourceforge.net/packages/gawk.htm