-2

cで次のgawkコマンドを使用する方法を教えてください。「システム」関数を使用してc内でいくつかのシェルコマンドを使用するように。さらに、以下のコマンドで数値、つまり 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 に答える