繁体   English   中英

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

[英]Print only matching word, not entire line through grep

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

环境是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:类似的线程但已经尝试过了: grep只能显示与搜索模式匹配的单词吗?

我假设这是你要连接的Solaris盒子。 Solaris的grep版本没有-o选项。 所以你也可以

  • 在Solaris盒子上安装GNU grep(它可能已安装在/usr/sfw/bin ,或者你可能运气好pkg install //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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM