我在 Windows 中有这个命令行输入:
dir /b | ruby -ne 'f=$_.chomp;File.read(f).each_line{|line| print f if line =~ /helloworld/};'
这一行是查找当前目录下的所有文件helloworld
。(我知道还有很多其他方法可以做到这一点,但这篇文章并没有关注那个)
我的问题是:
这一行给出了错误说法line is not a valid command
。然后我意识到|
在 Ruby 中作为块变量的大括号是 cmd 中的管道符号。我试图将整行更改为双引号并转义 | 签名但没有成功。我怎样才能逃脱竖线|?
请不要回答其他方法来完成任务,例如使用 grep、find、sed 或 awk 等其他工具,或将块更改为 for 循环。