1-е решение: Не могли бы вы попробовать следующее.
awk 'BEGIN{FS=OFS="|"} {for(i=1;i<=NF;i+=2){val=(val?val OFS:"") $i};print val;val=""}' Input_file
2-е решение: Без использования переменной и должно быть быстрее, чем 1-е решение, попробуйте следующее.
awk 'BEGIN{FS=OFS="|"} {for(i=1;i<=NF;i+=2){printf("%s%s",$i,(i==NF ||i==(NF-1)) && i%2!=0?ORS:OFS)}}' Input_file
ИЛИ (добавление формы не одного вкладыша вышеуказанного решения):
awk '
BEGIN{
FS=OFS="|"
}
{
for(i=1;i<=NF;i+=2){
printf("%s%s",$i,(i==NF || i==(NF-1)) && i%2!=0?ORS:OFS)
}
}
' Input_file
Выводбудет выглядеть следующим образом.
1|WORK
2|OFFICE
3|HOME
4|PERSONAL