我尝试从文件中抓取单词:
$ 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**
我想要的结果是:
# only words
**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**
使用指定的quatifiers {,20}
重构代码:
$ grep -o '\*\*[^*]{,20}\*\*' Principles_20_LifePrinciples.md
不幸的是,它返回None。
如何解决这样的问题?
答案 0 :(得分:0)
您可以添加-E
标志:
$ grep -E -o '\*\*[^*]{,20}\*\*' input | grep -v -e "Origin" -e "Etymology"
**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**
您也可以只匹配仅包含字母字符的文字:
$ grep -o '\*\*[[:alpha:]]*\*\*' input
对于input
,我使用了原始输出。
答案 1 :(得分:0)
因为你已经
了grep -o '\*\*[^*]*\*\*' Principles_20_LifePrinciples.md
在[^*]*
中添加一个空格,即。 [^* ]*
。
答案 2 :(得分:0)
请注意 {start,end},不应省略起始限定符。
$ grep -E -o '\*\*[^*]{0,20}\*\*' input | grep -v -e "Origin" -e
"Etymology"
**circumstance**
**case**
**condition**
**Anxiety**
**anxiety**