繁体   English   中英

Gawk命令未从批处理文件执行,但在命令行上正常

[英]Gawk command not executing from batch file but fine at command line

这里有问题,但我不知道这是什么类型的问题,因此事实证明很难找到解决方案。 不确定可能是刷新/缓冲事件,还是批处理文件与命令行语法问题。

我有一个包含gawk命令的批处理文件,但是执行不正确。 如果我将其粘贴到DOS命令行窗口中(我使用的是Win 7),它将正常执行。

该命令是:

gawk 'BEGIN {FS=OFS="^"} {print $1,$3,$2}' /cygdrive/c/0temp2/input.txt > C:\0temp2\output.txt

(因此,我只是尝试重新排列一些字段,使用“ ^”作为字段分隔符)

如果从批处理文件运行,则似乎在DOS命令窗口弹出时正在DOS提示符下执行,但实际上它挂起了,与此同时,.bat旁又弹出了一个单独的文件(我们称其为banana.txt)。脚本运行所在的文件(位于同一目录中),并且(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命令在几天甚至几周前进行操作的,但是似乎已经建立了它的遗产,我无法摆脱它。 有人知道这是怎么回事吗? 这让我发疯,并且我在网上发现的所有问题都可能是解决问题的部分解决方案(有时是相互冲突的),但由于其不够具体并且坦率地说,我不允许我对其进行修复,飞盲。

在Windows命令行提示符下键入命令where gawk 如果它列出的第一个文件的文件gawk.batgawk.cmd则删除该文件或重命名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM