在 grep 中使用指定的量词来检索满足条件的词汇表

在 grep 中使用指定的量词来检索满足条件的词汇表

我正在尝试从文件中获取单词:

$ grep -o '\*\*[^*]*\*\*' Principles_20_LifePrinciples.md | grep -v -e "Origin" -e "Etymology"
**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**
**the state of feeling nervous or worried that sth bad is going to happen**
**a worry or fear about sth**
**a strong feeling of wanting to do sth or of wanting sth to happen**

我想要的结果是只得到单词:

**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**

使用指定量词重构代码{,20}

$ grep -E -o '\*\*[^*]{,20}\*\*' Principles_20_LifePrinciples.md

不幸的是,它什么也没有返回。

如何解决这样的问题呢?

答案1

请注意,GNU grep 支持\w匹配单词字符(字母、数字和下划线),因此您可以轻松地匹配星号之间的部分中的单词字符:

grep -o '\*\*\w*\*\*'

答案2

您的第一个grep命令已经快完成了。

如果只需要匹配包含单个单词的行,请在[^...]正则表达式中添加一个空格:

$ grep -o '\*\*[^* ]*\*\*' file
**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**

相关内容