重複したパスを削除(統一)するワンライナー
このエントリで書いたワンライナーを関数にしてみた。
dotfiles/.zshenv at 7d20f5cc14906f5024c5384875cb062f5d316411 · tyru/dotfiles · GitHubより。
function rmdupenv() { if [ $# = 0 ]; then return; fi local env="$1" local sep="$2" eval "export $env=$(perl -e 'my ($e, $s) = (shift, shift || q(:)); #\ for(split $s, $ENV{$e}) { #\ $h{$_} or $h{$_}=++$i #\ } #\ $,=$s; #\ %h=reverse %h; #\ print map { $h{$_} } #\ sort { $a <=> $b } keys %h' \ $env $sep)" } rmdupenv PATH rmdupenv PERL5LIB