Thursday, 15 September 2011

bash - How to find all files and separate results by comma on Unix? -


मैं मानक find आउटपुट से जाना चाहूंगा जो कि:

  पथ / प्रति / file1.yaml path / to / file2.yaml path / to / file3.yaml  

इसे करने के लिए:

  पथ /to/file1.yaml,path/to/file2.yaml,path/to/file3.yaml  

कमांड लाइन से ऐसा करने का सबसे आसान तरीका क्या है?

< P> मैंने इन चीजों की कोशिश की है:

  ढूंढें -पाथ '* .yaml' | Sed -e 's / \ s /, / g' ढूंढें -पथ '* .yaml' -print0 | Sed -e's / /, / g ' 

लेकिन काम करने में प्रतीत नहीं होता।

फ़ाइल नामों को अल्पविराम के साथ अलग करने के लिए यहां एक तरीका है:

  ढूंढें -पाथ '* .yaml' | यदि फ़ाइल नामों में सफेद स्थान नहीं है, तो एक और तरीका है:  
  IFS =, प्रतिध्वन $ (tr) '\ n' ','  

टिप्पणियों में, कोजिरो एक तीसरा दृष्टिकोण सुझाता है जो कि व्हाइटस्पेस को संरक्षित करता है:

  ढूंढें। -पथ '* .yaml' -print0 | ट्र '\ 0',  

ध्यान दें कि, क्योंकि नए नाम और अल्पविराम को फ़ाइल नामों में अनुमति है, इस प्रारूप से भ्रम हो सकता है। इस प्रारूप का उपयोग केवल तभी किया जाना चाहिए, अगर आपको पता है कि आपकी फ़ाइलें समझदारी से नामित हैं।


No comments:

Post a Comment