с использованием awk
awk ' BEGIN { FS="[|\" ]+" ; OFS="|" } { print $2,$3,$4,$5,$6,$7,$8"|" } ' file
Объяснение:
BEGIN {FS = "[| \"] + "; OFS =" | "}
сначала установите следующее:
FS =" [ | \ "] +"
: поля разделяются любой комбинацией ( +
) (ноль или более любого) установленной ([]
) вертикальной черты, двойные кавычки (необходимо экранировать) и пробел | \ "
.
OFS =" | "
разделите поля вывода вертикальными линиями.
напечатайте $ 2, $ 3, $ 4, $ 5, $ 6, $ 7, $ 8" | "
вывести столбцы с 1 по 8 и вертикальную черту в конце (обратите внимание, что он сдвигается на единицу, поскольку строки начинаются с двойных кавычек, что делает первое поле пустой строкой и, таким образом, смещает позиции всех остальных).