问题标签 [gnuwin32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
101 浏览

tiff - 多页与 GnuWin32

GnuWin32 库的 tiffSplit.exe 分割 tiff 图像。是否可以使用 GnuWin32 库将各种单页文件转换为多页 tiff?

0 投票
1 回答
3787 浏览

windows - 使用 sed 改变对一个符号

我正在使用 GnuWin32(sed 4.2.1 和核心实用程序 5.3.0)在 Windows Vista 上工作。也有 ActivePerl 5.14.2 包。

我有一个大的多记录文件。文件中每条记录的结尾用四个美元符号 ($$$$) 表示。每个逻辑记录内都有许多“CRLF”。

我想用一个符号替换所有 CRLF 实例,例如|+|. 然后我将替换$$$$为 CRLF。结果:每行一条记录用于导入 Excel 以进行进一步操作。

我尝试了几种转换CRLF|+|但没有成功的方法。

例如,一种方法是:sed -e "s/[\r\n]/|+|/g" source_file_in target_file_out

tr -d用于删除的另一种方法\r,然后是第二条语句:sed -e "s/\n/|+|/g" source_file_in target_file_out

tr声明有效;sed声明没有。

我已阅读以下文章,但不知道如何调整它们以替换\r\n|+|.

sed:如何将 CR 和/或 LF 替换为 "\r" "\n",因此任何文件都将在一行中

替换包含 CRLF 的字符串?

如何使用 sed 替换换行符 (\n)?

sed如果使用(and )无法轻松解决此问题tr,那么如果有人告诉我如何使用,我将使用 Perl。


谢谢埃德的推荐。

awk 脚本尚未完全运行,因此我将添加一些缺失的细节,希望您可以微调您的建议。

首先,我正在运行 gawk v3.1.6.2962。我相信 awk 实现可能存在差异,所以这可能是一个有用的信息。

接下来,有关数据类型和数据来源的更多信息。

数据是关于化学品的(输入立体化学绘图程序的文本数据)。

化学文件为 .sdf 格式。

当我在 NotePad++ 中打开“133711.sdf”(使用查看/显示符号/显示所有字符)时,我看到屏幕截图中显示的数据: https ://dl.dropbox.com/u/3094317/_master_1_screen_shot_.png

如您所见,只有 LF - 没有 CR。我相信这意味着 .sdf 文件的来源是 UNIX 系统。

接下来,我运行 Windows 命令 COPY *.sdf _master_2_.txt。这会创建我想要解析为记录的非常大的文件文件。

_master_2_.txt 与 133711.sdf 具有相同的结构 - 仅 LF;没有CR。

然后,我在 .BAT 文件中运行您的 awk 建议。我需要用双引号替换你的单引号,因为微软让我。

awk -v FS="\r\n" -v OFS="|+|" -v RS="\$\$\$\$" -v ORS="\r\n" "{$1=$1}1" C:_master_2_.txt >C:\output.txt

我附上了 output.txt 的屏幕喊话: https ://dl.dropbox.com/u/3094317/output.txt.png

如您所见,awk 命令没有成功将“\r\n”替换为“|+|”。

此外,Windows 使用 CRLF 创建了 output.txt。

它确实成功地将四个 $ 替换为 CRLF。

此信息是否足以更新您的 awk 建议以处理与 Windows 相关的问题?

0 投票
4 回答
10376 浏览

python - Windows 上的“魔术”库缺少文件

我需要为 Windows 上的某些文件获取 mime 类型,所以我已经安装了python-magic(在 32 位 python 2.7.3 上)。
它取决于 unixmagic库。作者指示从 gnuwin32 项目中
获取regex2.dll和获取。所以我将文件保存到一个文件夹并将该文件夹添加到我的系统中。 现在当我执行方法时,我得到了丢失的文件异常: zlib1.dllmagic1.dllPATH
magic

DLL 在 PATH 中,我尝试调试并且magic1.dll位置正确,但是库内的某个地方抛出异常。在我找到
的包裹里面,. 我将它们放在同一个文件夹中,然后继续 gnuwin32magicmagic.mgcWindowsError: [Error 126]

这显然是因为 python 试图以magicdll 形式打开文件,这是纯文本。在代码中添加.dll文件名后,我得到了相同的结果magic.MagicException: could not find any magic files!
我缺少什么文件?

更新:

更新 2(已解决):

只需要明确指定文件

0 投票
1 回答
2232 浏览

batch-file - 如何在win7中记录未完成/无响应/挂起命令的输出?

我想要重定向命令的控制台输出。
问题是命令中途挂起(或多或少),即使它输出到控制台,日志文件也是空的。我也尝试过这样的 wtee.exe:com.exe | %pat%wtee.exe log.txt 但它不起作用。我需要一些可以实时转储控制台的东西。我对几乎任何解决方案持开放态度,包括 c++ 和 powershell csript 等。

作为记录,我需要它发布一些详细的输出(https://superuser.com/questions/564468/how-can-i-store-encfs6-xml-in-another-location-and-still-make-it-可检测

提前致谢

更新:

哇哦,它的工作原理。
显然,我必须在运行批处理脚本之前删除日志文件 + 在管道到 wtee.exe 之前,我必须将 stderr 重定向到 stdout,如下所示:

如果我使用

那么我不必每次都删除文件。
有趣的想法是带光尾的,但现在不需要它。流被发送到控制台和日志文件。

谢谢一堆

UPDATE2:我也使用了 gnuwin32 标签,因为 tee 和 wtee 几乎相同,所以这适用于 tee.exe,我想!

0 投票
1 回答
3875 浏览

python-2.7 - SIP Makefile 失败(gnuwin 和 mingw)

我已经下载了适用于 python 2.7 的 Sip 模块,创建了一个 makefile 并在make带有 makefile 的目录上尝试了命令,但是我收到了这个错误:

Gnuwin 和 mingw32 都出现此错误。所以我现在不知道该怎么办。任何想法?

0 投票
2 回答
1178 浏览

batch-file - Windows 批处理文件和 GNU Sed 分组命令

我在批处理文件中使用 GNU Sed for Windows。我想使用 sed 分组命令 {} 对一组命令进行分组。但是根据 UNIX 平台的文档,我们必须在 {} 中以新行开始每个 sed 命令。这可以在 UNIX 中完成,因为 bash 支持将命令扩展到 >1 行。但是在 Windows 批处理文件中,我们如何将命令拆分为 >1 行?我知道我可以将所有 sed 命令放在一个单独的脚本文件中,并使用“-f script-filename”调用 sed。但我想限制为只有 1 个批处理文件,并希望通过使用“sed -e 脚本”选项将所有内容放在批处理文件中。

我们如何在批处理文件中使用 sed -e 指定分组命令?

编辑

例如,从这个http://www.grymoire.com/Unix/Sed.html#uh-35

我们如何在批处理文件中做同样的事情?我的意思是,当他们将 sed 移植到 windows 平台时,他们应该已经遇到了这个问题并想出了一个解决方法。除非 GNU 家伙决定批处理文件不支持 {},但我在 GNU Sed 文档中找不到任何内容。

0 投票
0 回答
549 浏览

c - regex.h 在 VisualStudio 2010 中导致异常

我想向我的学生展示如何使用正则表达式。由于他们正在学习 C 编程,我认为最好使用来自 GnuWin32 的 regex.h ( http://gnuwin32.sourceforge.net/packages/regex.htm )。例如,我尝试运行http://www.peope.net/old/regex.html程序,但它会导致在运行时保存正则表达式的变量出现异常。准确的错误信息是:

运行时检查失败 #2 – 变量 'regex' 周围的堆栈已损坏

最重要的是示例本身运行正常,并且正则表达式函数似乎正常工作。在 main() 想要返回的所有重要事情都结束后,错误发生。

有人知道为什么会发生此错误吗?我使用的 64 位系统会不会是问题的一部分?

感谢您的任何建议!

0 投票
2 回答
70 浏览

compiler-construction - 解决 GnuWin32 Bison 中的 Shift/Reduce 警告?

我有以下规则,当用野牛实施它们时,我得到 5 个班次/减少警告。

规则的一部分是:

Parser.output在这种状态下给我警告:

**state 25**

谁能帮我解决这个问题,我已经阅读了很多文章,但我无法弄清楚出了什么问题,并提前感谢每个人...... :)

0 投票
1 回答
6634 浏览

batch-file - GnuWin32 openssl s_client conn 到 WebSphere MQ 服务器未在 EOF 关闭,挂起

我正在尝试使用 OpenSSL 的 GnuWin32 版本从多个 WebSphere MQ 队列管理器中获取证书。所有尝试都会导致 OpenSSL 保持连接打开,直到我手动按 ENTER。

我尝试按照这个 SO question这个 SO question将各种文本输入命令,但没有运气。

理想情况下,一旦输入文件或管道文本到达 EOF,OpenSSL 就会关闭连接。

例子:

使用该QUIT命令的示例似乎适用于其他 SO 问题,因为它们正在访问 HTTP 服务器。由于在我的情况下这是 WMQ,因此连接握手是不同的,并且发送QUIT(或我尝试过的其他任何东西)不会让它关闭连接。我可能会向它提供一个巨大的文件,直到 QMgr 阻塞并终止连接,但我试图对服务器尽可能礼貌。当前从键盘提供 ENTER 的方法会导致每个连接上的 FDC 转储,引发各种警报并使 Tivoli 家伙生我的气。

所以最好的情况是 QMgr 解释为优雅拒绝并关闭连接的字符串或十六进制值。第二个最佳情况是允许脚本化的任何方法,我们将接受 FDC 文件作为自动化此功能的成本。

更新:2013 年 5 月 31 日
我已经搬到了 AIX,它完美地工作。s_client 在脚本中运行时在建立连接后立即挂断并将换行符输入其中。但是,我仍然希望有一个适用于 Windows 的解决方案。有谁知道 Cygwin 版本是否有效或有同样的问题?是 Windows 信号/POSIX 问题吗?代码错误?

0 投票
2 回答
1687 浏览

emacs - emacs rgrep 在 find 命令中失败(Windows 7)

这似乎是一个愚蠢的问题,也许应该将它定向到 gnuwin32 的论坛,但我会在这里尝试一下。

我在 Windows 的 emacs 中使用 grep。我不得不使用 grep-find vs rgrep,我更喜欢使用它,因为它清除了许多我不想 grep 的文件。不幸的是,rgrep 似乎创建了一个“查找”命令,该命令太长以至于阻塞并给出错误。

使用 Mx rgrep 在我的 python 文件中搜索“import”(愚蠢的例子,我知道)给出以下输出:

寻找 。-type d "(" -path " /SCCS" -o -path " /RCS" -o -path " /CVS" -o -path " /MCVS" -o -path " /.svn" -o -path " /.git" -o -path " /.hg" -o -path " /.bzr" -o -path "*/_MTN" -o -path "*/_darcs" -o -path " /{arch}" ")" -prune -o "(" -name ".# " -o -name " .o" -o -name " ~" -o -name " .bin" -o -name " .bak" -o -名称“ .obj”-o-名称“ .map”-o-名称“ .ico”-o-名称“ .pif”-o-名称“ .lnk”-o-名称“.386" -o -name " .elc" -o -name " .lof" -o -name " .glo" -o -name " .idx" -o -name " .lot" -o -name " .fmt " -o -name " .tfm" -o -name " .class" -o -name " .fas" -o -name " .lib" -o -name " .mem " -o -name " .x86f" - o -name " .sparcf" -o -name " .dfsl" -o -name " .pfsl" -o -name " .d64fsl" -o -name " .p64fsl" -o -name " .lx64fsl" -o -名称“ .lx32fsl”-o-名称“ .dx64fsl ”-o-名称“.dx32fsl”-o-名称“.fx64fsl" -o -name " .fx32fsl" -o -name " .sx64fsl" -o -name " .sx32fsl" -o -name " .wx64fsl" -o -name ".wx32fsl" -o -name " .fasl" -o -name " .ufsl" -o -name " .fsl" -o -name ".dxl" -o -name " .lo" -o -name " .la " -o -name " .gmo" -o -name " .mo" -o -name " .toc" -o -name " .aux" -o -name " .cp" -o -name " .fn" - o -name " .ky" -o -name " .pg" -o -name " .tp" -o -name " .vr" -o -name " .cps" -o -name " .fns" -o -名称“ .kys”-o -name“ .pgs”-o -name“.tps”-o -name .vrs”-o-name“.pyc" -o -name".pyo" ")" -prune -o -type f "(" -iname "*.py" ")" -exec grep -i -nH -e "import" {} + find:路径必须在表达式之前 用法:find [-H] [-L] [-P] [路径...] [表达式]

如果我将此命令剪切并粘贴到 cygwin 窗口中,该窗口从 /usr/bin 中提取 find,它可以正常工作并找到几个实例。如果我将相同的命令粘贴到然后使用 gnuwin32/bin/find.exe 的 cmd 窗口中,我会得到与上面相同的错误(查找:路径必须在表达式之前)。我还在 mingw shell 中尝试了该命令,它在那里工作(使用 /msys/1.0/bin/find.exe)。更复杂的是,将 find 的 mingw 版本复制到 /gnuwin32/bin/ 没有帮助。没有错误,但 grep 从来没有真正找到任何东西。更糟糕的是,这样做会以同样的方式破坏“grep-find”;什么都找不到。

我猜在使用 gnuwin32 版本的“find”时,我在这里遇到的整个命令的长度是有限制的。

我想我可以放弃 gnuwin32 并将我的路径更改为指向 /msys/1.0/bin 以获取我使用的命令,但是这些命令将不再在 cmd 窗口中运行,至少在没有访问 mingw 的情况下不会DLL。我的一部分想知道为什么 gnuwin32 版本的 find 令人窒息。有任何想法吗?很抱歉这个冗长的问题。