2014-04-30 51 views
4

我需要按字母順序排列第二個字母的單詞列表,我似乎無法找到一種方法來做到這一點。Bash shell - 按第二個字母對單詞列表進行排序?

未分類:

smokelessly 
toelike 
arsenous 
malabar 
antiperspirant 
hock 
nibbing 
paleographically 
goon 

排序:

malabar 
paleographically 
nibbing 
smokelessly 
antiperspirant 
hock 
toelike 
goon 
arsenous 

我讀過有關sort命令,但它似乎並不具備的功能,讓我做到這一點?

+0

這是一個文件中的數據? – arunmoezhi

回答

10

sort -kX.Y是你的朋友! X指向該字符並且Y指向該字符。

$ sort -k1.2 file 
malabar 
paleographically 
nibbing 
smokelessly 
antiperspirant 
hock 
toelike 
goon 
arsenous 

如果要定義的最後一個位置,從排序,你可以使用

sort -k1.2,Z file 

man sort

-k,--key = KEYDEF

通過鍵排序; KEYDEF給出位置並鍵入

KEYDEF是F [.C] [OPTS] [,F [.C] [OPTS]用於開始和停止位置, 其中F是一個場號和C在一個字符位置領域; 都是原點1,停止位置默認爲行結束。 如果-t和-b都不生效,則字段中的字符將從前面的空格開始計爲 。 OPTS是一個或多個 單字母訂購選項[bdfgiMhnRrV],它會覆蓋該訂單的全球訂購選項 。如果沒有給出密鑰,則使用整個 行作爲密鑰。

+3

啊。你不喜歡GNU軟件嗎? – alex

相關問題