2016-03-20 21 views
0

SenaryomunBash Filtreleme dizeleri

find $DIR -type f \(-iname "*.*" ! -iname ".*" \) | awk -F. '{print $NF}' | sort -u 

bu çizgi var Ve bassicaly sadece bu yüzden bir, olmayan her gizli dosyaları bulur ve yazdırır onun uzantısı satır başına bir sonra çiftleri için sıralar çıktı örneğin olabilir:

ben uydurdum
exe 
c 
x 
png 
lg_CNG 
new 
lib-old 
s 

, buna da alfabetik sıraya göre olmalı, ama benim sorum ben bir şekilde onlara (herhangi olmayan alfabetik sembolüne sahip olanlar hariç tutabilir olan _, -,/.....)? Teşekkür ederim

Ben senin kökeni komutuna biraz değişiklik yaptık
+1

burada http://stackoverflow.com/questions/22491064/remove-all-lines- biraz ilham bul küçük harf karakteriyle başlayan –

+0

@FredrikPihl Denedim ve ekliyorum. sed '/^[[: alnum:]]/d'' benim durumumda çalışmıyor gibi gözüküyor, hiç bir şey yazmıyor – toddddos

+0

'sed' üzerinde hangi girdiyi çalıştırdığınızı bilmiyoruz ama' sed '/ [[: punct:]]/d'' benim için çalışıyor gibi görünüyor. Çıktınızda 'lg_CNG' ve' lib_old' kaldırıldı. Bu beklenen değil mi? –

cevap

1

, benim için çalışıyor:

find . -type f -iname '*' ! -iname '.*' | sed -r -e '/[-_]/d' | awk -F'.' '{ print $NF }' | sort -u