JDC*_*JDC 0 windows perl replace strawberry-perl
我正在尝试执行以下命令:
perl -pi -e 's,vaadin-element,color-picker,g' *.* demo/* test/* src/* theme/*/*
(遵循本文件)
不幸的是,我得到的以下错误似乎使我使用的Pearl窗口分布与命令有关,因为出现以下错误:
Can't open *.*: Invalid argument.
Can't open demo/*: Invalid argument.
Can't open test/*: Invalid argument.
Can't open src/*: Invalid argument.
Can't open theme/*/*: Invalid argument.
Run Code Online (Sandbox Code Playgroud)
关于如何解决该问题的任何建议?先感谢您!
免责声明:我以前从未使用过Pearl,而且绝对没有经验。
在unix系统中,shell扩展glob并将文件名传递给程序。
$ perl -e'CORE::say for @ARGV' *
file1
file2
Run Code Online (Sandbox Code Playgroud)
另一方面,Windows Shell会按原样传递值,并根据需要将其留给程序以将其视为glob。
>perl -e"CORE::say for @ARGV" *
*
Run Code Online (Sandbox Code Playgroud)
您可以按照以下步骤进行通配:
>perl -MFile::DosGlob=glob -e"BEGIN { @ARGV = map glob, @ARGV } CORE::say for @ARGV" *
file1
file2
Run Code Online (Sandbox Code Playgroud)
BEGIN通常不需要该块,但是它将确保在使用时-n(并且由暗示-p)足够早的一次定位。
该-MFile::DosGlob=glob品牌glob拥有类似Windows的语义。例如,它导致*.*匹配所有文件,即使它们不包含.。
集成:
perl -i -MFile::DosGlob=glob -pe"BEGIN { @ARGV = map glob, @ARGV } s,vaadin-element,color-picker,g" *.* demo/* test/* src/* theme/*/*
Run Code Online (Sandbox Code Playgroud)