2012-04-08 11 views
8

को छोड़कर मेरे पास फाइलें a1 a2 a3 b1 b2 b3 हैं और मुझे केवल ls कमांड का उपयोग करके सूची से ए 2 और बी 2 को बाहर करने की आवश्यकता है।यूनिक्स 'एलएस' कमांड वाइल्डकार्ड

+0

--ignore = "* 2", यह काम करता है लेकिन (मान लीजिए कि मेरे पास अन्य फाइलें हैं) जब मैं ls -a * -b * --ignore = "* 2" टाइप करता हूं, – user1078719

उत्तर

5

इस प्रयास करें: जब मैं ls टाइप

$ ls [a-b][13] 
a1 a3 b1 b3 

या

$ shopt -s extglob 
$ ls !(*2) 
a1 a3 b1 b3 
2

बस फ़ाइलें आप चाहते हैं की सूची:

ls a1 a3 b1 b3 
+1

+1 को कोई भी फाइल बहिष्कृत नहीं की जाती है क्योंकि यह केवल "एलएस का उपयोग करके" बाधा को पूरा करने का एकमात्र तरीका है। शैल ग्लब्स का उपयोग करके तर्क सूची में हेरफेर करने का कोई भी प्रयास खोल का उपयोग कर रहा है। (हालांकि, आप एलएस को निष्पादित करने के लिए खोल का उपयोग करते हैं, इसलिए शायद उस विशेष बाधा को खराब किया गया है।) –

+0

@ विलियम पर्सेल, मेरे विचार बिल्कुल। –

2

ls साथ की कोशिश करो और ls पुट 1 (नंबर एक) और नहीं पत्र "एल" के बाद

ls -1 | grep -viw "a2\|b2" 

वेतन ध्यान grep। कभी-कभी फ़ॉन्ट उन्हें भ्रमित कर देता है।

14

उपयोग --ignore विकल्प

ls --ignore=[ab]2 
+2

लेकिन 'ls' के किस संस्करण पर विकल्प '--ignore' काम करता है? मेरे मैक पर यह अस्तित्व में नहीं है। – dash1e

+0

जीएनयू कोर्यूटिल्स 8.5 – bouzuya

+0

यदि यह मदद करता है तो मैं Fefora13 का उपयोग कर रहा हूं। – user1078719

संबंधित मुद्दे