我需要对几 TB 的日志数据进行切片,并且更喜欢命令行的速度。 在处理之前,我会将文件分成多个 block ,但需要删除一些部分。
格式示例如下:
uuJ oPz eeOO 109 66 8
uuJ oPz eeOO 48 0 221
uuJ oPz eeOO 9 674 3
kf iiiTti oP 88 909 19
mxmx lo uUui 2 9 771
mxmx lo uUui 577 765 27878456
前 3 个字母数字字符串之间 的间隔是空格。之后的一切都是标签。行以 \n
分隔。
我只想保留每个组中的最后一行。
如果一组中只有 1 行,则应保留它。
这是预期的输出:
uuJ oPz eeOO 9 674 3
kf iiiTti oP 88 909 19
mxmx lo uUui 577 765 27878456
我如何使用 sed、awk、xargs 和 friend 来做到这一点,或者我应该只使用更高级别的东西,比如 Python?
最佳答案
awk -F '\t' '
NR==1 {key=$1}
$1!=key {print line; key=$1}
{line=$0}
END {print line}
' file_in > file_out
关于linux - 使用 sed、awk 和 xargs 切片 3TB 日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585523/