【发布时间】:2012-07-16 22:15:04
【问题描述】:
我正在使用一个 shell 脚本程序,它在内部调用一个 awk 脚本......但我计划将整个脚本更改为 awk,因为我遇到了一些问题......我只想知道 shell 中有一些命令我想知道它们是否可以在 awk 中完成。
1) ls, cd, zcat .. 如果我能做到,我该怎么做.. 请大家对此提出一些建议。谢谢。
【问题讨论】:
-
你为什么不描述你想要达到的目标?
我正在使用一个 shell 脚本程序,它在内部调用一个 awk 脚本......但我计划将整个脚本更改为 awk,因为我遇到了一些问题......我只想知道 shell 中有一些命令我想知道它们是否可以在 awk 中完成。
1) ls, cd, zcat .. 如果我能做到,我该怎么做.. 请大家对此提出一些建议。谢谢。
【问题讨论】:
Shell 命令和外部实用程序(例如您列出的那些)可以由 AWK system() 函数执行。你可能不需要cd 和ls,这取决于你在做什么。像zcat 这样的东西可以用system() 调用,输出用getline 读取。
cmd = "zcat filename"
while ((cmd | getline) > 0 {
# do something with the data
}
close(cmd)
【讨论】:
欢迎来到 StackOverflow。这是一个编程资源。得到最佳答案的问题往往包括源代码、输入数据、预期结果和实际结果。如果您尝试做某事,但失败了,然后带着具体问题来到这里,您会得到更好的答案。
也就是说,您可以通过在 shell 中运行 man awk 来找出 awk 中可用的命令。通常,您应该记住 ls 和 zcat 以及 /bin 或 /usr/bin 中的任何内容也不是您的 shell 的“内置”,而是可以从交互式命令调用的外部程序大多数语言的行或脚本。明确一点:ls 和 zcat 不是 awk 的一部分,也不是 /bin/sh 的一部分。
还有不同版本的 awk,具有不同的行为和不同的可用命令。您将从自己的系统中获得最好的文档,因为我们不知道您使用的是什么工具。
所以...对于这个问题,请向我们展示您的 shell 脚本,向我们展示您尝试使其成为 awk 脚本,询问有关您遇到的具体问题的问题。如果没有看到你的代码,我们就无法知道你想要做的事情在 shell 中是否可行,更不用说 awk。
【讨论】: