首页 > 解决方案 > 使用 grep 查找带有通配符和排除项的整个单词

问题描述

我有一些随机字符串。我正在尝试仅使用以下内容打印整个单词:

grep -ioh "\w*ice\w*"

这工作正常,但它似乎不显示符号而只显示字母。我希望通配符允许除空格以外的任何符号。这有可能吗?

为了更好地解释,上面的代码在一个字符串中,如:

这只猫非常好,只显示“好”,而我想要“非常好”

标签: regexgrep

解决方案


您可以使用

grep -ioh "\S*ice\S*"

或者

grep -ioh "[^[:space:]]*ice[^[:space:]]*"

[^[:space:]](或)匹配除空白字符以外的\S任何字符。

查看grep 在线演示

grep -ioh "\S*ice\S*" <<< "The cat is very-nice"
## => very-nice

推荐阅读