Eu não sei porque você está copiando as coisas para a esquerda e para a direita. O simples é
awk '{print "-" $2, substr($5,2,length($5)-2), "+", $4, ";"}' File1
Eu coloco o -
no começo e o ;
no final.
Entre nós imprimimos
-
$2
porque queremos como é. - uma substring de
$5
, que é o string sem o primeiro e o último caractere. Nós pulamos o primeiro personagem começando na posição 2 (awk sempre foi estranho sobre isso) e deixar de fora o último caractere, selecionando apenas um substring que é dois caracteres menor que o original$5
- o
+
porque queremos - e, em seguida,
$4
No entanto, não tenho certeza se todas essas funções de string são específicas do GNU awk.