我正在使用一个shell脚本程序,它在内部调用awk脚本......但我打算将整个脚本更改为awk,因为我遇到了一些问题。我只是想知道shell中有一些命令我想知道他们是否可以用awk完成。
1)ls,cd,zcat ..如果我能够做到,我该怎么办..请问你能否就此提出一些建议。谢谢。
答案 0 :(得分:3)
Shell命令和外部实用程序(例如您列出的那些)可以由AWK system()
函数执行。您可能不需要cd
和ls
,具体取决于您正在做什么。可以使用zcat
调用类似system()
的内容,并使用getline
读取输出。
cmd = "zcat filename"
while ((cmd | getline) > 0 {
# do something with the data
}
close(cmd)
答案 1 :(得分:2)
欢迎使用StackOverflow。这是一个编程资源。获得最佳答案的问题往往包括源代码,输入数据,预期结果和实际结果。如果你尝试做事,失败,那么你会得到更好的答案。然后来这里提出具体的问题。
也就是说,您可以通过从shell运行man awk
来查找awk中可用的命令。一般来说,您应该记住,ls
和zcat
以及/ bin或/ usr / bin中的任何内容也不是“内置”到shell中,而是可以调用的外部程序来自交互式命令行或大多数语言的脚本。需要说明的是:ls
和zcat
不属于awk,也不属于/ bin / sh。
还有不同版本的awk,具有不同的行为和不同的命令。您将从自己的系统中获得最佳文档,因为我们不知道您正在使用哪些工具。
所以......对于这个问题,向我们展示你的shell脚本,告诉我们你试图把它变成一个awk脚本,询问你遇到的具体问题。在没有看到你的代码的情况下,我们无法知道你想做什么甚至可能在shell中,更不用说awk了。