问题标签 [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.
tiff - 多页与 GnuWin32
GnuWin32 库的 tiffSplit.exe 分割 tiff 图像。是否可以使用 GnuWin32 库将各种单页文件转换为多页 tiff?
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",因此任何文件都将在一行中
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 相关的问题?
python - Windows 上的“魔术”库缺少文件
我需要为 Windows 上的某些文件获取 mime 类型,所以我已经安装了python-magic
(在 32 位 python 2.7.3 上)。
它取决于 unixmagic
库。作者指示从 gnuwin32 项目中
获取regex2.dll
和获取。所以我将文件保存到一个文件夹并将该文件夹添加到我的系统中。
现在当我执行方法时,我得到了丢失的文件异常: zlib1.dll
magic1.dll
PATH
magic
DLL 在 PATH 中,我尝试调试并且magic1.dll
位置正确,但是库内的某个地方抛出异常。在我找到
的包裹里面,. 我将它们放在同一个文件夹中,然后继续 gnuwin32
magic
magic.mgc
WindowsError: [Error 126]
这显然是因为 python 试图以magic
dll 形式打开文件,这是纯文本。在代码中添加.dll
文件名后,我得到了相同的结果magic.MagicException: could not find any magic files!
。
我缺少什么文件?
更新:
更新 2(已解决):
只需要明确指定文件
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,我想!
python-2.7 - SIP Makefile 失败(gnuwin 和 mingw)
我已经下载了适用于 python 2.7 的 Sip 模块,创建了一个 makefile 并在make
带有 makefile 的目录上尝试了命令,但是我收到了这个错误:
Gnuwin 和 mingw32 都出现此错误。所以我现在不知道该怎么办。任何想法?
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 文档中找不到任何内容。
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 位系统会不会是问题的一部分?
感谢您的任何建议!
compiler-construction - 解决 GnuWin32 Bison 中的 Shift/Reduce 警告?
我有以下规则,当用野牛实施它们时,我得到 5 个班次/减少警告。
规则的一部分是:
并Parser.output
在这种状态下给我警告:
**state 25**
谁能帮我解决这个问题,我已经阅读了很多文章,但我无法弄清楚出了什么问题,并提前感谢每个人...... :)
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 问题吗?代码错误?
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 令人窒息。有任何想法吗?很抱歉这个冗长的问题。