BDN*_*BDN 3 linux grep sed awk
2018-05-24 23:57:30 1.1.1.1 8.8.4.4
2018-05-24 23:57:32 2.2.2.2 8.8.4.4
2018-05-24 23:58:12 8.8.8.8 8.8.4.4
2018-05-24 23:58:23 8.8.8.8 8.8.4.4
2018-05-24 23:59:40 8.8.8.8 8.8.4.4
2018-05-24 23:59:51 8.8.8.8 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
因为我有上述格式的日志文件。现在我需要解析它,输出应该如下所示(如果行数据重复,则通过比较第 3 列和第 4 列只显示第一行和最后一行。
2018-05-24 23:57:30 1.1.1.1 8.8.4.4
2018-05-24 23:57:32 2.2.2.2 8.8.4.4
2018-05-24 23:58:12 8.8.8.8 8.8.4.4
2018-05-24 23:59:51 8.8.8.8 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
Perl 来拯救:
perl -ane '
if ($F[2] ne $c3 || $F[3] ne $c4) {
$printed or print $previous;
$printed = print;
} else {
$printed = 0;
}
($c3, $c4, $previous) = (@F[2, 3], $_);
END { print $previous unless $printed }
' -- input.file
Run Code Online (Sandbox Code Playgroud)
-n
逐行读取输入并为每一行运行代码。-a
将空格上的每个输入行拆分为 @F 数组。 归档时间: |
|
查看次数: |
448 次 |
最近记录: |