หากคุณใช้ bash เป็นเชลล์นี่เป็นภารกิจง่าย ๆ สำหรับไปป์ไลน์ shell
ls | grep '\.out$' | while read file; do echo mv "$file" "${file%.*}"; done
ls สร้างรายการไฟล์ในไดเรกทอรี
grep '\.out$' แยกชื่อไฟล์ที่ลงท้ายด้วย. out และละทิ้งส่วนที่เหลือ
while read file อ่านชื่อไฟล์ทีละครั้ง
echo mv "$file" "${file%.*}" แสดง แต่ไม่ได้รันคำสั่ง mv ที่จะเปลี่ยนชื่อแต่ละไฟล์เป็นเวอร์ชันที่ไม่มีส่วนขยาย ${file%.*} business คือ bash syntax สำหรับดึงส่วนขยายของไฟล์ออก เมื่อคุณพอใจที่ไปป์ไลน์จะทำในสิ่งที่คุณต้องการหากมีการใช้งานจริงให้ลบ echo ส่วนหนึ่งและปล่อยให้มันทำงานจริง
ls | grep '\.out$' | while read file; do mv "$file" "${file%.*}"; done
program.outในสคริปต์ต่อไป