【发布时间】:2018-01-19 04:44:37
【问题描述】:
这就是我想要做的。我有一个文件,其中的行以多种方式分隔,我想根据这些行中的模式捕获多个子字符串。
所以示例行将是这样的:
servername.domain:2017 08 07.SomeText1.otherIrrelevantStuff;SomeText2.MoreStuff
^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^
换句话说,我想在文件的每一行中捕获“servername”、“2017 08 07”、“SomeText1”和“SomeText2”。
我尝试使用 perl -P 和正向前瞻/后向来做到这一点,但只有第一个有效。每行的结果也应该打印在一行中(因此通过多个 grep -oP 的管道是不可接受的)。
你会怎么做?
【问题讨论】:
-
请将该示例输入的所需输出添加到您的问题中。
-
awk -F '[.:;]' '{print $1,$3,$4,$6}' file? -
文件每行所需的输出应该是这样的: servername 2017 08 07 SomeText1 SomeText2