यदि आप एक शेल के रूप में बैश का उपयोग कर रहे हैं, तो यह शेल पाइपलाइन के लिए एक सरल कार्य है।
ls | grep '\.out$' | while read file; do echo mv "$file" "${file%.*}"; done
ls निर्देशिका में फ़ाइलों की एक सूची तैयार करता है।
grep '\.out$' उन फ़ाइलनामों को निकालता है जो समाप्त हो जाते हैं और शेष को छोड़ देते हैं।
while read file एक समय में फ़ाइल नाम पढ़ता है।
echo mv "$file" "${file%.*}"प्रदर्शित करता है, लेकिन एक एमवी कमांड नहीं चलाता है जो प्रत्येक फ़ाइल को इसके विस्तार के बिना एक संस्करण में बदल देगा। ${file%.*}व्यापार एक फाइल एक्सटेंशन बंद अलग करना के लिए बैश वाक्य रचना है। जब आप संतुष्ट हो जाते हैं कि पाइपलाइन वही करेगी जो आप चाहते थे यदि वह वास्तविक के लिए चलाई जाती है, तो echoभाग को हटा दें और इसे वास्तविक के लिए चलने दें।
ls | grep '\.out$' | while read file; do mv "$file" "${file%.*}"; done
program.outस्क्रिप्ट में वैसे भी कोई उल्लेख नहीं दिख रहा है ।