regex - 使用批处理文件为关键字的每个实例创建换行符

标签 regex windows command-line batch-file

我在系统上发现了曾经是 0-day Java 漏洞的东西,这让我想到了查看每个用户配置文件中的 Java .idx 文件,寻找可能指向事件 0-day 威胁的可疑 URL。

我从这个开始:

for /d %%A in ("C:\Documents and Settings\*") do (
findstr /S "http://" "%%A\Application Data\Sun\Java\Deployment\cache\6.0\*" >> C:\temp\javaurls.txt)

这会生成一个充满 URL 的文件,但它们与许多控制信息和其他无趣的东西混在一起。我想要做的是为找到的“http://”的每个小写实例创建一个换行符。任何人都知道如何使用批处理文件中的命令行执行此操作?

最佳答案

我知道“只需使用其他工具!”答案可能很烦人。但是,Windows 批处理文件/命令行实用程序非常糟糕,如果您必须经常执行此类操作,我认为值得研究其他选项。除非你喜欢弄清楚 undocumented, non-standard, broken regular expressionsneeding hacky solutions for even the most basic functionality , 即。

一些选项:

  • > Perl
  • > Grep for Windows (相当于 findstr 更好)
  • > Cygwin (适用于 Windows 的完整类 Linux shell 环境;包括 grep)。

这是一行 Perl,您可以将其添加到批处理文件中,以便在每个 http:// 之前添加一个换行符:

perl -pi.bak -e "s|(http://)|\n$1|g" C:\temp\javaurls.txt

但是,如果我从头开始,我会在 Perl 中完成所有事情,而不是使用批处理文件。

关于regex - 使用批处理文件为关键字的每个实例创建换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934565/

相关文章:

java - 如何按空格分割字符串(有异常(exception))

c++ - 关闭 fstream 是否保证文件系统同步?

java - 如何使用 NetBeans 在 Windows Java 项目中使用 HDF5

ios - iTMSTransporter失败,错误为-20101

macos - ImageMagick 转换缓存目录

Android RegEx 找不到匹配项

javascript - 如何创建具有以下条件的正则表达式

ubuntu - Jupyter Lab 未在 Ubuntu 上打开

regex - 具有命名组的 VBA 和正则表达式

windows - 使用不同数量的多核 worker 时的不同行为