2014-10-08 61 views
1

说,我有一个C代码,我编译这样的:awk命令运行的C++代码,并多次输入

$ gcc code.c -o f.out 
$ ./f.out inputfile outputfile 

然后代码会要求输入

$ enter mass: 

现在,如果我需要运行这个代码例如200次,输入文件有名称:0c.txt,1c.txt,.....,199c.txt等,我想每次使用相同的质量值(例如质量= 6)那么我该如何为此编写一个“awk”命令?谢谢你的帮助。

+0

你为什么不硬编码在你的质量本身的价值代码? – 2014-10-08 19:48:54

+1

为什么awk?壳牌会更简单。 – 2014-10-08 19:50:16

+0

是什么让你觉得'awk'在这种情况下是最好的工具? – eduffy 2014-10-08 19:50:31

回答

3

您不指定您的输出文件名称。我假设0c.out,1c.out,...

我还假设f.out程序从标准输入读取质量而不是更复杂。

#!/usr/bin/gawk -f 
BEGIN { 
    mass = 6 
    for (i=0; i<200; i++) { 
     cmd = sprintf("./f.out %dc.txt %dc.out", i, i) 
     print mass |& cmd 
     close(cmd, "to") 
     while ((cmd |& getline out) > 0) { 
      do something with each line of output from ./f.out 
     } 
     close(cmd) 
    } 
} 

裁判http://www.gnu.org/software/gawk/manual/html_node/Two_002dway-I_002fO.html

在bash中,你会写:

for i in $(seq 0 199); do 
    echo 6 | ./f.out ${i}c.txt ${i}c.out 
done 
+0

非常感谢Glenn。 – user3389597 2014-10-08 20:06:16