Eu acredito que isso é o mais simples:
awk 'BEGIN{FS=OFS=":"}{print $4,$1,$2,$3}' <<< $PATH
No Linux e / ou no Mac OSX, qual é a melhor maneira de automatizar a movimentação de uma entrada na variável de ambiente $ PATH para a frente do valor da seguinte forma:
/ foo / bar: / um / dois / três: / opt / local / bin: / home / usuário / bin
Torna-se
/ home / user / bin: / foo / bar: / um / dois / três: / opt / local / bin
Atualmente estou usando o sed para fazer isso, mas gostaria de saber se há uma solução mais simples.
Eu acredito que isso é o mais simples:
awk 'BEGIN{FS=OFS=":"}{print $4,$1,$2,$3}' <<< $PATH
Rapidamente, você pode escrever:
dir=/home/user/bin
PATH=$dir:${PATH//:$dir/}
Se você tem algo como
PATH=/first:/second:/home/user/bin/subdir:/home/user/bin
então isso é mais robusto:
tmp=":$PATH:"
tmp=$dir${tmp//:$dir:/:}
PATH=${tmp%:}