当我运行下面的程序时,我没有得到任何回报,但是程序仍然会永远运行,直到我结束它。有人可以向我解释为什么会发生这种情况。我试图让这个复杂的 awk 语句起作用,但是非常不成功。
我用于 Cshell 的代码是(全部在一行上,但我在此处将其拆分以使其更易于阅读):
awk '{split($2,b,""); counter = 1; while (counter < 13)
{if (b[counter] == 1 && "'$cmonth'" > counter)
{{printf("%s%s%s\n", $1, "'$letter'","'$year3'")}; counter++;
else if (b[counter] == 1 && "'$cmonth'" <= counter)
{{printf("%s%s%s\n", $1, "'$letter'","'$year2'")}; counter++;}
else echo "fail"}}' fileRead >> $year$month
我正在阅读的文本文件看起来像
fff 101010101010
yyy 100100100100
这里代表从 1987$year2
年$year3
开始的计数器,每读取一行就增加 1 年。
$cmonth
只是从 1 到 12 的月份计数器。
$letter
只是一个ID。
如果字节码中的位置为 1,程序的目标是读取每一行并打印出 ID、月份和年份。