-2

谁能告诉我如何在c中使用以下gawk命令?就像我们使用“系统”函数在 c 中使用一些 shell 命令一样。此外,我想在下面的命令中给出数字,即 6、2、8 作为参数。

gawk -v FIELDWIDTHS='6 2 8' 'NR!=1 && x==$1{printf(" %d:%d",strtonum("0x"$2),strtonum("0x"$3)); next}; {x=$1; printf("%s%s %d:%d", NR==1?"":"\n", $1,strtonum("0x"$2),strtonum("0x"$3))}; END{print ""}' input.txt | sed '/^[0-9a-f]* [0-9:]*$/d' > result.txt

谢谢,任何帮助将不胜感激。

4

1 回答 1

1

您可能可以使用 snprintf 构造带有变量的字符串,然后将命令传递给 popen ,它会返回一个带有输出的文件。例如:

char buffer[1024];
snprintf(buffer, sizeof(buffer), "<insert command here>", var1, var2);
FILE output = popen(buffer, "r");

我知道您在命令中将输出定向到 result.txt,但是如果您只是要在 c 程序中使用输出,那么 popen 返回的文件就足够了。我自己没有尝试过,所以让我知道它是否有效。

于 2012-03-15T14:00:34.843 回答