मैं मेकफाइल सृजन सीखने की प्रक्रिया में हूं।
वर्तमान लक्ष्य को $ (SOURCEDIR)
के लिए । C
फ़ाइलें और / path / file के प्रारूप में
) एक अच्छा .c
फ़ाइल पथ के उस लिज़ के अनुसार C $ (VPATH)
है, इसलिए मुझे रिकर्सिव मेकफाइल (एक में उर्फ दर्द) का उपयोग करने की आवश्यकता नहीं है।
एटीएम यह, जहां $ (SOURCETREE)
पर खाली होगा $ (ECHO)
स्रोत: = $ (shell find $ (SOURCEDIR) -नाम '* .c') स्रोत: $ $ ($ $ (स्रोत)) स्रोत: = $ (शैल $ (ईसीएचओ) $ (सोर्सिटी) | $ (एसईडी) -ए "एस / [[: स्पेस:]] / \ N / g "| यूनीक | $ (एसईडी) -e" / \ n / [[अंतरिक्ष:]] / जी ");
हो सकता है कि मुझे अभी भी अंक न मिलें (देर से हुई: /)
किसी भी मदद के लिए धन्यवाद।
नोट: एक बैश में शेल यह मेरे लिनक्स वर्कबॉक्स पर पूरी तरह से कार्य करता है (मैं इनवेरिबिलल्स को तदनुसार बदलता हूं) नोट: मैं कोई समर्थक नहीं हूं, इसलिए कृपया बताएं कि क्या आप sed के साथ जादू करते हैं, धन्यवाद
टिप्पणियां:
-
बैकल्टी निकालें वे अनावश्यक हैं;
$ (शेल)
फ़ंक्शन पहले से ही कमांड के आउटपुट को कैप्चर करता है। -
echo / sed / uniq / sed श्रृंखला को एलएस / यूनिक द्वारा बदला जा सकता है
ls
प्रति पंक्ति एक फ़ाइल नाम मुद्रित करेगा, इसलिए प्रतिस्थापित और पूर्ववत गीत और नृत्य की कोई आवश्यकता नहीं है। -
ऐसा लगता है कि आप खो रहे हैं
$ (dir)
से परिणाम क्योंकि आप$ (सोर्सस)
की बजाय$ (SOURCETREE)
तीसरे असाइनमेंट में उपयोग करते हैं।
परिणाम:
स्रोत: = $ (शैल $ $ $ (एसओआरसीआरआईडीआईआर) -नाम '* .c') स्रोत: स्रोत)) सोर्सिट्री: = $ (शेल एलएस $ (सोर्सिटी) | यूनिक);
दरअसल, यहां तक कि इस छोटे शॉल आवंटन अनावश्यक है। यह नामों की सूची को सॉर्ट करेगा और डुप्लिकेट को हटा देगा। बनाने के दस्तावेज़ से: "संयोग से, क्योंकि सॉर्ट दोहरे शब्दों को हटा देता है, आप इसे इस उद्देश्य के लिए उपयोग कर सकते हैं भले ही आप सॉर्ट ऑर्डर के बारे में परवाह न करें।"
स्रोत: = $ (shell find $ (SOURCEDIR) -नाम '* .c') स्रोत: $ $ (सॉर्ट करें $ (डायर $ (सोर्सस)))
Comments
Post a Comment