+universal していないパッケージをぜんぶ入れ替えるワンライナ

port installed | tail +2 | grep -v \+universal | cut -f 3 -d ' ' | while read name; do if port variants $name | grep -q universal; then echo $name; fi; done | while read name; do now=`port installed $name | tail +2 | cut -f 4 -d ' '`; var=`echo $now | sed -e 's/@[^+][^+]*//'`; var=$var+universal; echo "$name: $now => $var"; sudo port deactivate $name $now && sudo port install $name $var && sudo port uninstall $name $now; done

これは依存関係を考慮していないので、依存先ライブラリが +universal されていない場合にリンクエラーが出ます。従って、最低でも2パス実行する必要があるでしょう。