【发布时间】:2021-03-29 12:19:04
【问题描述】:
我有一个无法解决的 grep 问题。
我有什么。 名字和姓氏的列表,例如:
John Doe
Alice Smith
Bob Smith
我的问题。 有时,名字和姓氏是脱节的,例如:
Alice
Smith
Bob Doolittle
Mark
Von Doe //sometimes, there are more than one word on the next line
我想要实现的目标。 将“孤儿”名称与下一行连接起来。
Alice Smith
Bod Doolittle
Mark Von Doe
我已经尝试过的
grep -ozP "^\w+\n\w.+" file | tr '\n' ' '
所以,在这里我让 grep 找到只有一个单词的行并将其与下一行连接起来,即使下一行有多个单词。
它可以正常工作,但前提是孤立词位于文件的开头。 如果它出现在第一行下方,grep 不会发现它。所以一个快速而肮脏的解决方案,我会循环遍历文件并在每次通过后删除一行对我来说不起作用。
【问题讨论】:
-
那些只使用 1 个名字的人呢? kalzumeus.com/2010/06/17/…
-
在许多情况下确实需要考虑这一点,但在这里这是不可能的。列表中的姓名来自国家登记处,您不能没有至少一个名字和一个姓氏。