【发布时间】:2013-07-13 04:54:25
【问题描述】:
我想在 windows 的所有文件中用另一个字符串替换一个字符串。 所有具有相同扩展名的文件。 我尝试使用 perl one liner 命令,但似乎“*”不适用于 windows。
perl.exe -pi.bak -e "s/Hello/ABCD/ge" C:\Users\Jamimb\Desktop\Test\*.tmp
所以请帮忙。
【问题讨论】:
-
我怀疑在 Linux 中等效的工作,因为命令解释器 shell 在程序执行之前将带有 * 的任何文件名扩展为实际文件名的列表。它在 Windows 中可能不起作用,因为不会发生这种 * 的通配符扩展。
-
@Paul:在windows中还有什么方法可以代替*?
-
如果从 cygwin 或其他一些 shell 而不是通常的 dos 命令行运行,perl 可能会表现得更好。 cygwin.com
-
在尝试之前,请检查您的 perl 是否会修改单个文件。如果它不会修改您命名的单个文件,则修复 *. 没有意义
-
@Paul:“表现得像 Linux” 不是 “表现得更好” 的同义词。 Linux 有很多优点,但任何看起来像文件 glob 的参数在您查看之前就已为您展开,这不是其中之一。