【问题标题】:Sed equivalent in a .bat file [duplicate].bat 文件中的 Sed 等效项 [重复]
【发布时间】:2017-02-06 21:59:56
【问题描述】:

我有一个 shell 脚本 (.sh),我在其中使用 sed 命令替换文件中最后一个匹配的字符(我已将命令放在下面)。

我应该如何替换命令以在批处理文件 (.bat) 中获得相同的功能而不添加任何包/插件(在 Windows 7 及更高版本中兼容)?

sed -i '$ s/,/;/g' abc.java

【问题讨论】:

  • 不要。只需安装/使用 cygwin 并继续...
  • 在windows中安装cygwin可以使用同样的命令吗?
  • 是的,这就是重点。

标签: windows batch-file sed scripting sh


【解决方案1】:

Windows 中没有sed,不是没有任何插件或附加组件。如果需要使用 sed,可以安装 SED for Windows。

【讨论】:

    【解决方案2】:

    Windows 批处理脚本没有任何本机工具可以方便地执行类似于 sed 的任何操作。

    您可以使用带有简单脚本的 PowerShell,或带有小型自定义 VBS 或 JScript 脚本的 CSCRIPT。

    我会使用JREPL.BAT - a regular expression text processing utility。它是纯脚本(混合批处理/JScript),可以在从 XP 开始的任何 Windows 机器上本地运行。它不需要任何非本地 exe 或 com 文件。

    使用jrepl /?jrepl /?? 可从命令行获取完整文档以获取分页帮助。

    JREPL 可以使用以下命令执行您的简单任务:

    call jrepl "," ";" /inc -1 /f abc.java /o -
    

    【讨论】:

    • 我应该在我的机器上安装任何东西来使用 jrepl 吗?我的机器有 Windows 7
    • @PrakadeesshArunachalam - 您只需复制链接中的代码并将其粘贴到名为 JREPL.BAT 的文件中。该文件必须保存为 ASCII(不是 Unicode)。如果您将 JREPL.BAT 放在 PATH 中列出的文件夹中,这是最方便的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 2010-10-15
    相关资源
    最近更新 更多