加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 04:14:55 所属栏目:百科 来源:网络整理
导读:我在 Windows中有这个命令行输入: dir /b | ruby -ne 'f=$_.chomp;File.read(f).each_line{|line| print f if line =~ /helloworld/};' 这一行是在当前目录下找到helloworld的所有文件. (我知道还有很多其他方法可以做到这一点,但帖子并没有关注那个) 我的
我在 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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读