【发布时间】:2020-01-17 16:24:00
【问题描述】:
我有一个包含 4 行批次的文本文件,每个批次的第一行位于正确的位置,但接下来的 3 行并不总是按正确的顺序排列。
name cat
label 4
total 5
value 4
name dog
total 4
label 3
value 6
name cow
value 6
total 1
label 4
name fish
total 3
label 5
value 6
我希望每 4 行批次采用以下格式:
name cat
value 4
total 5
label 4
所以输出将是:
name cat
value 4
total 5
label 4
name dog
value 6
total 4
label 3
name cow
value 6
total 1
label 4
name fish
value 6
total 3
label 5
该文件总共包含数千行,所以我想构建一个命令来处理这 3 行的所有潜在顺序,如果格式不正确,请重新排列它们。
我知道我可以使用 awk 搜索以特定字符串开头的行并重新排列它们:
awk '$1 == "value" { print $3, $4, $1, $2; next; } 1'
但是我不知道如何实现类似的处理多行的东西。
我怎样才能做到这一点?
【问题讨论】: