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.