这是我尝试运行的 shell 脚本的示例,但它没有打印出 grep 的结果,而是打印了整个字符串。 难道不能在 中使用管道吗$()
?
i="the cat is a crazy"; word=$( echo $i | grep cat); echo $word;
答案1
你刚刚跑步了吗
$ echo $i | grep cat
> the cat is a crazy
来自手册:
Grepprint lines matching a pattern
您想使用 -
-o, --only-matching
Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.
$ i="the cat is a crazy"; word=$( echo $i | grep -o cat ); echo $word;
> cat
答案2
您只想grep -o
从一行中获取一个单词。grep
的默认行为是打印出找到匹配项的整行。