将完整的shell脚本程序更改为awk

时间:2012-07-17 22:40:25

标签: shell awk

我正在使用一个shell脚本程序,它在内部调用awk脚本......但我打算将整个脚本更改为awk,因为我遇到了一些问题。我只是想知道shell中有一些命令我想知道他们是否可以用awk完成。

1)ls,cd,zcat ..如果我能够做到,我该怎么办..请问你能否就此提出一些建议。谢谢。

2 个答案:

答案 0 :(得分:3)

Shell命令和外部实用程序(例如您列出的那些)可以由AWK system()函数执行。您可能不需要cdls,具体取决于您正在做什么。可以使用zcat调用类似system()的内容,并使用getline读取输出。

cmd = "zcat filename"
while ((cmd | getline) > 0 {
    # do something with the data
}
close(cmd)

答案 1 :(得分:2)

欢迎使用StackOverflow。这是一个编程资源。获得最佳答案的问题往往包括源代码,输入数据,预期结果和实际结果。如果你尝试做事,失败,那么你会得到更好的答案。然后来这里提出具体的问题。

也就是说,您可以通过从shell运行man awk来查找awk中可用的命令。一般来说,您应该记住,lszcat以及/ bin或/ usr / bin中的任何内容也不是“内置”到shell中,而是可以调用的外部程序来自交互式命令行或大多数语言的脚本。需要说明的是:lszcat不属于awk,也不属于/ bin / sh。

还有不同版本的awk,具有不同的行为和不同的命令。您将从自己的系统中获得最佳文档,因为我们不知道您正在使用哪些工具。

所以......对于这个问题,向我们展示你的shell脚本,告诉我们你试图把它变成一个awk脚本,询问你遇到的具体问题。在没有看到你的代码的情况下,我们无法知道你想做什么甚至可能在shell中,更不用说awk了。