我正在尝试从文件中获取单词:
$ 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**