首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grep:未知的输入语法(在2台不同的机器中:1台机器的结果很好,另一台是错误的)

Grep:未知的输入语法(在2台不同的机器中:1台机器的结果很好,另一台是错误的)
EN

Stack Overflow用户
提问于 2014-01-05 16:47:49
回答 1查看 100关注 0票数 0

我只有grep有个问题。

从这一投入:

(粉红)(橙色)(蓝绿色)(<( )>)(<( )>)(purplegreen)(pinkblue)(pinkred)::George->Phil-> (purplegreen)(pinkpink)(orangepurple)(redpurple)(redorange)(bluepurple)(<( )>)(紫橙)(绿橙)(红紫色(greenpink)(orangeorange)(greenred)(redpink)(orangepink)(greenred)(<( )>)(蓝橙)(桔红色)(蓝绿色)(紫绿色)(蓝)(蓝绿色)(橙)(<( )>)(<( )>)(pinkred)(greengreen)(redblue)::George->Tom->(<( )>)(<( )>)(pinkblue)(purplered)(purplered)(redblue)(redgreen)(orangegreen) (红)(紫红)(红))(<())(红)(<( )>)(<( ())>(<())>):

我要做一个输出:

*乔治->菲尔-> *乔治->汤姆-> *菲尔->埃德娜->

我的命令是:

代码语言:javascript
复制
grep -o -i '::\+[Harry|Edna|Phil|George|Tom]\+->\+[harry|edna|phil|george|tom]\+->'
FILE

它在我的机器上成功地产生了输出,正如你在屏幕截图中看到的那样。我用的是Ubuntu 13.10

然而,我的讲师说这个命令是“未知的输入语法”,在他的机器上。我哪里出错了?如何在其他机器中检查grep命令不是“未知的输入同步”以进行交叉操作?如果不同的机器可以产生不同的结果,那么如何在哪里为各种linux和不同的硬件产生可靠的结果呢?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-05 16:55:25

您使用字符类不正确。regex [a|bc]匹配一个字符,该字符是列出的四个字符之一:a|bc。显然,您希望(a|bc)与文字字符串a或文字字符串bc相匹配,但需要grep -E (又名egrep)来实现。

另外,::+匹配两个或多个冒号,(a|bc)+匹配abc的一个或多个序列,例如aaaaabcabcbcbcaa

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20936246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档