У меня есть текстовый файл, который содержит партии из 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
Файл содержит тысячи строк в общей сложности, поэтому я хотел бы создайте команду, которая может обрабатывать все потенциальные порядки трех строк и переупорядочить их, если не в правильном формате.
Я знаю, что могу использовать awk для поиска строк, начинающихся с определенной строки, и их переупорядочить их:
awk '$1 == "value" { print $3, $4, $1, $2; next; } 1'
Однако я не могу понять, как добиться чего-то похожего, что обрабатывается в несколько строк.
Как я могу добиться этого?