Isso pode ser feito com awk
usando "
como o separador de campo. Mas, fazendo isso, você deve lembrar que $1
está vazio, $2
contém a primeira cadeia, $3
é o espaço entre cadeias, $4
é a segunda cadeia, etc. Além disso, é mais confiável trocar os dois seqüências de caracteres em vez de apenas imprimir todos os campos e esperando que você coloque bastante $n
s. Tendo isso em mente, o seguinte deve funcionar:
awk 'BEGIN{OFS=FS="\""} {tmp=$4;$4=$6;$6=tmp;print}' input_file >output_file