मान लीजिए कि आपके कार्यदिवस के दौरान आप बार-बार कुछ कमांड से स्तंभित आउटपुट के निम्न रूप को bash (मेरे मामले svn st
में मेरी कार्यशील निर्देशिका में निष्पादित करने से ) में सामना करते हैं :
? changes.patch
M app/models/superman.rb
A app/models/superwoman.rb
आपकी कमांड के आउटपुट के साथ काम करने के लिए - इस मामले में फ़ाइल नाम - कुछ प्रकार के पार्सिंग की आवश्यकता होती है ताकि दूसरे कॉलम को अगले कमांड के इनपुट के रूप में उपयोग किया जा सके।
मैं जो कर रहा हूं वह awk
दूसरे कॉलम में प्राप्त करने के लिए उपयोग करना है, उदाहरण के लिए जब मैं सभी फ़ाइलों को निकालना चाहता हूं (ऐसा नहीं है कि यह एक विशिष्ट usecase है :), मैं करूंगा:
svn st | awk '{print $2}' | xargs rm
चूंकि मैं इसे बहुत टाइप करता हूं, इसलिए एक स्वाभाविक सवाल यह है कि क्या इस तरह से बैश में इसे पूरा करने का एक छोटा (इस प्रकार ठंडा) तरीका है?
नोट: मैं जो पूछ रहा हूं वह अनिवार्य रूप से एक शेल कमांड प्रश्न है, हालांकि मेरा ठोस उदाहरण मेरे svn वर्कफ़्लो पर है। यदि आपको लगता है कि वर्कफ़्लो मूर्खतापूर्ण है और एक वैकल्पिक दृष्टिकोण का सुझाव देता है, तो मैं शायद आपको वोट नहीं दूंगा, लेकिन अन्य लोग कर सकते हैं, क्योंकि यहाँ सवाल यह है कि वास्तव में कैसे n-th कॉलम कमांड आउटपुट को bash में प्राप्त किया जा सकता है, कम से कम संभव तरीके से । धन्यवाद :)