
其中Perl的部份:
while (defined($source=<> )) {
chomp($source);
$tag=$source;
$tag=~ s/\.app$/_ppc.app/;
system "ditto --rsrc --arch ppc $source $tag";
}
$tag=~ s/\.app$/_ppc.app/;是正規式的語法,將來源的檔案(.app),換成(_ppc.app),然後存回變數$tag。
system :是Perl 去執行shell的指令。
執行畫面:

Adium由27.9M 移除Intel 程式碼後成為22.6M

系統的威力來自於程式間彼此的關係多於程式本身!
he214b wrote:
可以為我們弄一個程式...(恕刪)
喔,這個好像不容易喔!要用 bash shell 知道應用程式是Universal 或PPC 的就是麻煩了!
你試下面的shell,會將/Applications (應用程式)目錄下的Universal 程式輸出至家目錄下的my.log 檔:
改寫自:MscOSXhints.com
# !/bin/sh
find /Applications -type d -name MacOS -maxdepth 3 2>&1 |
while read line
do
app_home=`find "$line" -type f -maxdepth 1 -perm +a=x`
echo "$app_home" |
while read app
do
result=`file "$app"`
#echo "$result"
echo "$result" | grep "fat file" | \
grep -v "for architecture" >> ~/my.log
done
done
輸出後:
/Applications/iTunes.app/Contents/MacOS/iTunes: Mach-O fat file with 2 architectures
只有iTunes是Universal的!
然後再對這個my.log 檔做處理,要把前面的路徑及應用程式/Applications/iTunes.app 挑出來!
再想想囉!
系統的威力來自於程式間彼此的關係多於程式本身!
內文搜尋

X