在使用Ruby进行命令行时,如何逃避垂直条?

前端之家收集整理的这篇文章主要介绍了在使用Ruby进行命令行时,如何逃避垂直条?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 Windows中有这个命令行输入:
dir /b | ruby -ne 'f=$_.chomp;File.read(f).each_line{|line| print f if line =~ /helloworld/};'

这一行是在当前目录下找到helloworld的所有文件. (我知道还有很多其他方法可以做到这一点,但帖子并没有关注那个)

我的问题是:

此行给出错误,说明行不是有效命令.然后我意识到了在Ruby中作为块变量的括号是cmd中的管道符号.我试图将整行改为双引号并转义|签字但没有成功.如何逃离垂直条|?

请不要回答其他方法来执行任务,例如使用其他工具,如grep,find,sed或awk,或将块更改为for循环.

解决方法

我找到了 this microsoft.com page关于管道和特殊字符的说明:

The ampersand (&),pipe (|),and parentheses ( ) are special characters that must be preceded by the escape character (^) or quotation marks when you pass them as arguments.

原文链接:https://www.f2er.com/ruby/268160.html

猜你在找的Ruby相关文章