2013-02-09 141 views
0

我正在嘗試爲Xcode編寫一個Automator shell腳本,以使我的導入列表具有唯一性。訣竅是,我不希望他們排序。所以,我發現這個perl的魔力,幾乎完美的作品:忽略perl中的空行?

# Print all unique lines 
perl -ne 'print unless $a{$_}++' 

唯一擦是,它消除了我的#imports之間的所有空的空間。我喜歡通過他們的功能分組進口...

//Model 
#import This.h 
#import That.h 

// ViewControllers 
#import ThisView.h 
#import ThatView.h 

...所以我想保留空格。

上面的咒語會有一些變化會忽略空格嗎?如果不是有另一種方式來影響這一點?

回答

5

事情是這樣的:

perl -ne 'print unless /\S/ && $a{$_}++' 

「打印,除非該行包含非空白字符,並已經在你的哈希存在」

3

如果你只希望影響進口,也許是最簡單的解決方案是將您的重複數據刪除限制爲以#開頭的行。

perl -ne 'print unless /^\s*#/ && $a{$_}++'