2016-01-21 34 views
0

我想輸出一個目錄中的文件名列表,其中列表應按每個文件名中給定字符的出現次數降序排列。我怎樣才能用bash做到這一點?按給定字符的數量排列文件名?

+0

@anishsane我已經寫在數學的解決方案。這會有幫助嗎? – becko

+0

你的輸入名稱是什麼樣的?名稱中是否有空格或其他特殊字符?名稱一側是否重複字符(例如abb.txt,aab.txt aaa.txt)或是否分割(例如aba.txt)? – anishsane

+0

也許,但不是如果你不分享它。 – tripleee

回答

2

讓說你想的出現次數在文件名中的 「A」 進行排序:

for i in *; do; echo "`grep -o "a" <<< "$i" | wc -l` $i"; done | sort -r 

結果

$ ls 
carla 
elaine 
guybrush 
herman 
largo 
leamon-head 
lechuck 
max 
meathook 
ozzie 
sam 
stan 
voodoo 

$ for i in *; do; echo "`grep -o "a" <<< "$i" | wc -l` $i"; done | sort -r 
2 leamon-head 
2 carla 
1 stan 
1 sam 
1 meathook 
1 max 
1 largo 
1 herman 
1 elaine 
0 voodoo 
0 ozzie 
0 lechuck 
0 guybrush 
相關問題