Para um número fixo de campos, você pode usar awk , por exemplo, para trocar o segundo e o quarto campo:
command | awk '{ t = $2; $2 = $4; $4 = t; print }' | column -t
Mas infelizmente ls -l não tem um número fixo de campos (separados por espaços) porque também os nomes de arquivos podem conter espaços: esta é a razão pela qual não é desencorajada parsing ls -l output.