首页 > 解决方案 > 如何在 bash 中使用 grep 显示所有以 1 个大写字母开头的单词?

问题描述

我试过这样的东西, sed 's/^[ \t]*//' file.txt | grep "^[A-Z].* " 但它只会显示以大写开头的单词开头的行。

file.txt 内容:

Something1 something2
word1 Word2
this is lower

输出将是Something1 something2,但我希望它也显示第二行,因为还有一个以大写字母开头的单词。

标签: bashgrep

解决方案


使用 GNU grep 即可grep -P "[A-Z]+\w*" file.txt。或者,正如@Shawn 在下面的评论中所说,grep -P '\b[A-Z]' file.txt也可以使用。如果你只想要单词,而不是整行,grep -Po "[A-Z]+\w*" file.txt会给你单个单词。


推荐阅读