alterando o último mas um campo e removendo o último campo:
$ awk '{$(NF-1)=$(NF-1)";<>apple="$NF;$NF="";}1' OFS="\t" file
input_file (colunas são delimitadas por tabulações, apenas a coluna 4 contém espaços)
entrada
A B C D;<>X;<>Y 0
C D E F;<>Z;<>X 1
saída
A B C D;<>X;<>Y;<>apple=0
C D E F;<>Z;<>X;<>apple=1
Eu gostaria de mesclar a última coluna de input_file com a segunda última coluna e separar o valor da última coluna com ";" e uma tag "apple=" na segunda última coluna (assim como na coluna número 4 do input_file). Por isso, o output_file tem uma coluna a menos. Também é necessário manter o arquivo de saída de formatação intacto.Como todas as colunas são delimitadas por tabulações, mas os valores na coluna 4 também têm espaços (D;
Por isso eu quero manter todos os separadores de campo do arquivo de entrada como tal, só quero mesclar o valor da última coluna no segundo passado com uma tag (apple =). Obrigado
A maneira mais fácil é provavelmente com awk
:
awk 'BEGIN {FS=OFS="\t"} { $4 = $4 ";<>apple="$5; print $1, $2, $3, $4 }'
O bloco BEGIN
garante que essa guia seja usada como separador de campo de entrada e também como separador de saída.