ls -a | cut -d "." -f 1
आदमी (1) में कटौती
बहुत आसान, -d स्विच सीमांकक और -f जो क्षेत्र आप चाहते हैं परिभाषित करता है।
संपादित करें: riverfall's परिदृश्य भी केक का टुकड़ा है क्योंकि कट अंत से भी शुरू हो सकता है, हालांकि तर्क कुछ अलग है। यहाँ यादृच्छिक नाम के साथ फ़ाइलों का एक समूह के साथ एक उदाहरण, दो डॉट्स, एक एकल बिंदु के साथ कुछ और कुछ विस्तार के बिना के साथ कुछ:
[email protected]:~/test$ ls
test.001.rpx test.003.rpx test.005.rpx test.007.rpx test.009.rpx testxxx
test.002.rpx test.004.rpx test.006.rpx test.008.rpx test_nonum test_xxx.rtv
[email protected]:~/test$ ls | cut -d "." -f -2
test.001
test.002
test.003
test.004
test.005
test.006
test.007
test.008
test.009
test_nonum
testxxx
test_xxx.rtv
शून्य से से पहले क्षेत्र नंबर का उपयोग करता है यह सब खत्म करने, लेकिन संकेत दिया खेतों (इस मामले में 1,2) और इसे पीछे रखकर यह अंत से गिनती शुरू कर देता है। (Http://mywiki.wooledge.org/ParsingLs) के लिए ऑफसेट और क्षेत्रों के अलावा पात्रों
यह वही अंकन किया जा सकता है (आदमी पृष्ठ देखें)
एफडब्ल्यूआईडब्ल्यू, मैं 'एलएस | का उपयोग करता हूं sed/s (\ *। \) \ .. */\ 1/''केवल * अंतिम * डॉट से शुरू होने वाले भाग को बंद करने के लिए। (साथ ही, निर्देशिका नाम में '.' के लिए देखें, उदाहरण के लिए ls ../src – rici
ls -1 और ls समान रूप से व्यवहार करते हैं जब ls के लिए stdout एक पाइप है। वास्तव में कोई फर्क नहीं पड़ता ... –
@rici:' sed -e's /\.[^.]*$// '' – anishsane