awk - 我想从 tcl 脚本执行 awk 命令

标签 awk tcl

我想从我的 tcl 脚本中执行以下命令

exec /bin/awk '/Start/{f=1;++file}/END/{f=0}f{print > "/home/user/report/"file }' input

我遇到了这个错误

awk: ^ invalid char ''' in expression

是否可以从 tcl 执行这样的命令

谢谢

最佳答案

引自 tcl 手册页:

When translating a command from a Unix shell invocation, care should be taken over the fact that single quote characters have no special significance to Tcl. Thus:

awk '{sum += $1} END {print sum}' numbers.list

would be translated into something like:

exec awk {{sum += $1} END {print sum}} numbers.list

所以我会尝试不加引号(作为答案发布,因为它不能正确地放在评论中,这只是在谷歌上快速搜索的结果)

根据评论,您可以在 var 之前创建 awk 脚本,例如:

set awk_command "/Start/{f=1;++file}/END/{f=0}f{print > \"$tcl_variable\"file }" 
exec /bin/awk $awk_command input

关于awk - 我想从 tcl 脚本执行 awk 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28109655/

相关文章:

automation - ssh 到 unix 服务器的脚本

awk - 用 awk 替换字段的第 n 个字符

linux - awk 在循环中使用时不打印任何内容

TCL::如何将反斜杠 "\"作为常规字符

shell - 我如何让 Tcl 的 exec 运行一个命令,该命令的参数包含带空格的引号字符串?

list - 如何从tcl列表中删除空元素

Tcl中的静态变量

regex - 使用 sed 删除从第 n 列开始到下一个非空白区域的所有空白区域

regex - 高级 `uniq` 和 "unique part regex"

linux - 您如何以内存有效的方式随机化行?