我只有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) (红)(紫红)(红))(<())(红)(<( )>)(<( ())>(<())>):
我要做一个输出:
*乔治->菲尔-> *乔治->汤姆-> *菲尔->埃德娜->
我的命令是:
grep -o -i '::\+[Harry|Edna|Phil|George|Tom]\+->\+[harry|edna|phil|george|tom]\+->'
FILE它在我的机器上成功地产生了输出,正如你在屏幕截图中看到的那样。我用的是Ubuntu 13.10

然而,我的讲师说这个命令是“未知的输入语法”,在他的机器上。我哪里出错了?如何在其他机器中检查grep命令不是“未知的输入同步”以进行交叉操作?如果不同的机器可以产生不同的结果,那么如何在哪里为各种linux和不同的硬件产生可靠的结果呢?
非常感谢。
发布于 2014-01-05 16:55:25
您使用字符类不正确。regex [a|bc]匹配一个字符,该字符是列出的四个字符之一:a、|、b或c。显然,您希望(a|bc)与文字字符串a或文字字符串bc相匹配,但需要grep -E (又名egrep)来实现。
另外,::+匹配两个或多个冒号,(a|bc)+匹配a或bc的一个或多个序列,例如aaaa或abcabcbcbcaa。
https://stackoverflow.com/questions/20936246
复制相似问题