मैं उन सभी फाइलों को खोजने की कोशिश कर रहा हूं जिनके लिए नाम एक बड़े अक्षर से शुरू होता है। मैंने निम्नलिखित कमांड का उपयोग करने की कोशिश की है:
find . -type f -regex '.*\/[A-Z][^/]*'
यह केवल निचले अक्षरों के साथ पथ ढूंढ रहा है। निम्नलिखित कार्य:
find . -type f -regex '.*\/[ABCDEFGHIJKLMNOPQRSTUVWXYZ][^/]*'
जैसा हुआ:
find . -type f | grep '.*\/[A-Z][^/]*$'
मैंने regextypeएक ही परिणाम के लिए सभी विभिन्न विकल्पों की कोशिश की है ।
findमें लोअरकेस अक्षर क्यों शामिल हैं [A-Z]? मुझे लगा कि इसके लिए रेगेक्स था [a-zA-Z]। क्या केवल अपरकेस अक्षरों की श्रेणी निर्दिष्ट करने का कोई तरीका है find?
यह काम करता है। क्या आप बता सकते हैं कि उत्तर में क्यों?
—
कार्ल बेलेफेल्ट
मैं कोशिश कर सकता था, लेकिन तब आप इस पर चूक सकते थे ।
—
mikeserv
आप स्लैश (
—
बजे क्रिस्टियन सियुपिटु
\/) से क्यों बच रहे हैं ? इसके अलावा आप क्या खोज रहे हैं ( find --version)?
बचना
—
डेल्टैब
/तभी आवश्यक है जब आप इसे एक सीमांकक के रूप में उपयोग कर रहे हों, जैसे s/foo\/bar/foobar/। (लेकिन अक्सर आप कुछ अन्य सीमांकक का उपयोग कर सकते हैं s#foo/bar#foobar#।)
LC_ALL=C find ...?