我创建了一个简单的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命令?
此致
答案 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