
Linux 및/또는 Mac OSX에서 $PATH 환경 변수의 항목을 다음과 같이 값 앞으로 자동으로 이동하는 가장 좋은 방법은 무엇입니까?
/foo/bar:/1/2/3:/opt/local/bin:/home/user/bin
된다
/home/user/bin:/foo/bar:/one/two/ three:/opt/local/bin
현재 저는 이 작업을 수행하기 위해 sed를 사용하고 있지만 더 간단한 해결책이 있는지 알고 싶습니다.
답변1
나는 이것이 가장 간단하다고 믿습니다.
awk 'BEGIN{FS=OFS=":"}{print $4,$1,$2,$3}' <<< $PATH
답변2
빠르게 다음과 같이 작성할 수 있습니다.
dir=/home/user/bin
PATH=$dir:${PATH//:$dir/}
당신이 같은 것을 가지고 있다면
PATH=/first:/second:/home/user/bin/subdir:/home/user/bin
그러면 이것이 더 강력해집니다.
tmp=":$PATH:"
tmp=$dir${tmp//:$dir:/:}
PATH=${tmp%:}