Grep 按字母搜索单词

Grep 按字母搜索单词

我正在搜索一个如下结构的人员文件

约翰·史密斯 555-555-5555 哈佛广场,波士顿

我想找到所有以特定字母开头的姓氏。我尝试使用“grep \

答案1

我建议你使用awk而不是例如grep查找第二个空格分隔的字段以字母开头的行S

awk '$2 ~ /^S/' file

答案2

尝试使用grep正则表达式模式:

grep -P "(?<=^[A-Za-z]+\\s)A"

这应该与姓氏以 A 开头的所有条目匹配。


正则表达式解释

向后看 (?<=text)检查是否text在实际搜索的模式之前发生。我使用它来跳过第一个名称,即给出的^[A-Za-z]+\\s,表示行首(^),然后是至少一个字母,无论是否大写,然后是一个空格(\\s)。在后向查找之后,实际匹配的模式仍然存在,在本例中是大写字母 A。

相关内容