小编Ger*_*ill的帖子

如何将 raku -e 和 -n 与多个文件 glob 一起使用

我想在 Windows 上的 raku 中执行以下操作

raku -n -e ".say if /mydatabegin/;" *.file
Run Code Online (Sandbox Code Playgroud)

无法打开文件 C:\..\*.file: 参数无效

glob 不被解释为 glob。我认为这是因为 Windows 要求你的程序自己进行通配?那么是否有一个预处理指令或函数,甚至是我可能错过或重定向的开关,或者允许扩展 glob 同时保持 -n (或 -p)和 -e 开关的简单性的东西?

显然,我可以通过删除 -n (或 -p)将其更改为完整程序,只需使用 -e 指定 main 并循环 glob 结果。但我真的很喜欢-n。

附言。我实际上只是在学习 raku,并且很惊讶这并没有开箱即用。因此,具有简单语法的完整程序的示例也可以工作。但我真的很喜欢-n..

编辑:回复@chenyf

raku -e ".say for $*ARGFILES" *.file
Run Code Online (Sandbox Code Playgroud)

同样的错误。有关的:

raku -e ".say for $*ARGFILES.lines" *.file
Run Code Online (Sandbox Code Playgroud)

同样的错误。

raku -e "use IO::Glob; .say for glob('*.file')"
Run Code Online (Sandbox Code Playgroud)

按预期工作!扩展:

raku -e "use IO::Glob; .say for glob('*.file').lines"
Run Code Online (Sandbox Code Playgroud)

对于“IO::Glob”类型的调用者没有这样的方法“lines”

越来越接近——也许对此进行扩展是一个足够好的解决方法。但回到一线荣耀的尝试:

raku -e "use IO::Glob; .say for glob($*ARGFILES)" test.file
Run Code Online (Sandbox Code Playgroud)

无法解析调用者 …

glob command-line-tool command-line-arguments raku

10
推荐指数
1
解决办法
373
查看次数