这里有问题,但我不知道它是什么类型的问题,因此很难找到解决方案。可能是一个刷新/缓冲的东西,或批处理文件与命令行语法问题,不确定。
我有一个批处理文件,其中包含gawk命令,但它没有正确执行。如果我将它粘贴到DOS命令行窗口(我使用Win 7),它执行正常。
命令是:
gawk 'BEGIN {FS=OFS="^"} {print $1,$3,$2}' /cygdrive/c/0temp2/input.txt > C:\0temp2\output.txt
(所以我只是想重新排列几个字段,用" ^"作为字段分隔符)
如果从批处理文件运行,当DOS命令窗口弹出时,看起来它正在DOS提示符下执行,但实际上它是挂起的,同时是一个单独的文件(让我们称之为banana.txt)弹出运行脚本的.bat文件旁边的同一目录,并且字节值(banana.txt)从1字节变为零字节,表示脚本正在写入它。如果我在写入banana.txt时打开它,假设我在它不是零字节文件时捕获它,它包含以下内容:
C:\0Temp>gawk 'BEGIN { FS = "^"; OFS = "^" } ; {gsub("1","s1",$10)}1' /cygdrive/c/0temp1/banana.txt 1>C:\0temp2\banana.txt
这个banana.txt文件对我来说很熟悉,并且在几天甚至几周前被一个gawk命令操作,但似乎已经确立了它的遗产,我无法摆脱爆炸的事情。有谁知道这里发生了什么?它让我发疯,我在网上找到的只是部分可能的(有时是冲突的)解决方案,指出了问题,但不允许我修复它,因为它们不够具体坦率地说,我是盲目的。
答案 0 :(得分:1)
从Windows命令行提示符处键入命令where gawk
。如果它列出的第一个文件的文件名为gawk.bat
或gawk.cmd
,则删除该文件或重命名。