【发布时间】:2019-09-17 04:23:27
【问题描述】:
我正在处理文本文件(从 facebook 组复制和粘贴)我已经使用 sed 命令组删除了所有字符串“Like”“Comment”评论编号等。我留下的线条看起来像这样:
Jane Doe
Jane Doe Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec ac urna ut quam sagittis placerat id vitae justo.
John Doe
John Doe Maecenas id justo tempus, auctor velit in, porta nibh.
John Doe
John Doe Maecenas id justo tempus, auctor velit in, porta nibh.
Fred Crun
Fred Crun Maecenas id justo tempus, auctor velit in, porta nibh. Mauris bibendum et ligula molestie faucibus. Nullam feugiat tristique sapien non fringilla.
Fred Crun
Fred Crun Maecenas id justo tempus, auctor velit in, porta nibh. Mauris bibendum et ligula molestie faucibus. Nullam feugiat tristique sapien non fringilla.
Frank Zappa
Frank Zappa Suspendisse malesuada libero id tortor scelerisque feugiat. Suspendisse vel feugiat est. Vestibulum vel nisl magna. Aenean viverra diam vel vulputate pulvinar. In hac habitasse platea dictumst.
我正在寻找 sed 或其他 Unix 实用程序的正则表达式,它将删除行上的名称,后面没有其他文本,使行看起来像这样:
Jane Doe Lorem ipsum dolor sit amet, consectetur adipiscing elit.
John Doe Maecenas id justo tempus, auctor velit in, porta nibh.
John Doe Maecenas id justo tempus, auctor velit in, porta nibh.
Fred Crun Maecenas id justo tempus, auctor velit in, porta nibh. Mauris bibendum et ligula molestie faucibus. Nullam feugiat tristique sapien non fringilla
Fred Crun Maecenas id justo tempus, auctor velit in, porta nibh. Mauris bibendum et ligula molestie faucibus. Nullam feugiat tristique sapien non fringilla.
Frank Zappa Suspendisse malesuada libero id tortor scelerisque feugiat. Suspendisse vel feugiat est. Vestibulum vel nisl magna. Aenean viverra diam vel vulputate pulvinar. In hac habitasse platea dictumst.
这里是颂歌。
。我查看了uniq 和gvim 中的几个regep 示例,但我看不到实现目标的方法。名称可以由 3 个单词组成。
【问题讨论】:
-
不确定我是否完全理解,但如果您只打印奇数行号,那么您可以使用:awk 'NR%2==1 {print $0}' $filename 希望这有帮助。
-
您好,我正在尝试删除包含重复名称但没有其他文本的行。请参阅我对问题的编辑以获取正在处理的文件的更准确版本。感谢您的建议,我尝试使用上面的文字,它返回了 Jane Doe John Doe
-
edit 您的问题是根据您提供的输入显示您期望的输出,而不是您未提供的其他输入的其他输出。还要说明名称是总是 2 个单词还是可以是多个单词,例如
Arthur Conan Doyle。 -
完成@Ed Morton
-
那你怎么能从一个 2 个单词的名字后面跟着 1 个单词的“extra text”中分辨出什么是 3 个单词的名字呢?为什么
Donec ac urna ut quam sagittis placerat id vitae justo.不包含在输出中?如果它前面有一行Donec ac urna ut quam sagittis placerat id vitae,那么 your accepted answer 会打印它 - 这真的是您想要的行为吗?