【发布时间】:2019-01-29 19:06:41
【问题描述】:
我遇到了特定情况。如果我有一个包含以下条目的文件:
my.site.example.com
somelinewithnodot
some.line .with.a.weird.space..this.is
this.one.has , and.stuff*.all.I
&&&83%23^&4,I;dont,even.need.2see
使用 bash,我如何使用 awk 或 sed 之类的东西将每行的数据用“。”分割。然后只打印直接在last“.”之前和之后的条目,忽略没有“.”的行?
期望的输出:
example.com
somelinewithnodot
this.is
all.I
need.2see
我一直在尝试使用 sed,但在设置正则表达式时遇到了问题。我以前做过这样的事情,但已经过了一分钟,我无法记住如何正确设置它......
【问题讨论】:
-
为什么不只是 grep?
grep -Eo '([^.]+\.)?[^.]+$' -
始终建议您在帖子中添加您为解决问题所做的努力,请这样做@Jon Red
-
@oguzismail 我很难设置正则表达式,我已经过了一分钟了。不过,我最终还是使用了 awk,因为事实证明它是解决这个特定难题的更简单的解决方案。