Unix 仅打印匹配的单词,而不是通过grep打印整行

Unix 仅打印匹配的单词,而不是通过grep打印整行,unix,grep,solaris,Unix,Grep,Solaris,我熟悉bash中的shell编程,但由于某些原因,只打印匹配的单词是不起作用的,并且显示错误如下 环境是putty上的ksh unix控制台,而不是linux或ubuntu终端……任何建议都非常感谢 终端输入和输出: AB12 $ echo "i am a boy" | grep -w "am" i am a boy AB12 $ echo "i am a boy" | egrep -o "am" egrep: illegal option -- o usage: egrep [ -bchiln

我熟悉bash中的shell编程,但由于某些原因,只打印匹配的单词是不起作用的,并且显示错误如下

环境是putty上的ksh unix控制台,而不是linux或ubuntu终端……任何建议都非常感谢

终端输入和输出:

AB12 $ echo "i am a boy" | grep -w "am"
i am a boy
AB12 $ echo "i am a boy" | egrep -o "am"
egrep: illegal option -- o
usage: egrep [ -bchilnsv ] [ -e exp ] [ -f file ] [ strings ] [ file ] ...
AB12 $ echo$
ksh: echo$: not found
AB12 $ echo $SHELL
/bin/ksh
AB12 $ echo "i am a boy" | grep -o "am"
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .
AB12 $

PS:类似的线程,但已尝试:

我假设这是您正在连接的Solaris设备。Solaris版本的
grep
没有
-o
选项。所以你可以

  • 在Solaris机箱上安装GNU grep(它可能已经安装在
    /usr/sfw/bin
    中,或者您可能有幸安装了
    pkg//Solaris/text/GNU grep
    );或
  • 改用awk(请参阅)
请参见“我的盒子”上的:

$ uname
SunOS
$  echo "i am a boy" | grep -o "am"
grep: illegal option -- o
Usage: grep -hblcnsviw pattern file . . .
$  echo "i am a boy" | /usr/sfw/bin/ggrep -o "am"
am

如果您有
perl

echo "I am a boy" | perl -lne '/am/ && print $&'
am

您应该复制/粘贴代码/终端输出,而不是发布屏幕截图。你的截图很难阅读,你不能从中复制/粘贴,也不能编辑(如果需要的话);你正在使用哪个操作系统?
grep-V
grep--version
是否说明了版本?发布的屏幕截图不正确可见。同样,作为5K代表,人们应该很好地发布问题。@Jayesh:用代码更新了!:)@它说:
用法:grep-hblcnsviw模式文件
有什么方法可以识别solaris框?可以尝试
uname-a
?查看uname-aOk的输出
SunOS
就足以得出solaris框的结论。尝试我在回答中提出的备选方案。
/usr/sfw/bin/
是默认情况下在Solaris上安装UNIX实用程序GNU版本的路径(安装时)