我遇到了特定情况。如果我有一个包含以下条目的文件:
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,但在设置正则表达式时遇到了问题。我以前做过这样的事情,但已经过了一分钟,我无法记住如何正确设置它......
最佳答案
请您尝试关注一下。
awk -F'.' 'NF>1{print $(NF-1) FS $NF;next} 1' Input_file
OR
awk 'BEGIN{FS=OFS="."}NF>1{print $(NF-1) FS $NF;next} 1' Input_file
或
awk -F'.' 'NF>1{$0=$(NF-1) FS $NF} 1' Input_file
OR
awk 'BEGIN{FS=OFS="."}NF>1{print $(NF-1) FS $NF;next} 1' Input_file
关于regex - bash 脚本 - 使用 sed 或 awk 拆分和提取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54428053/