วันนี้ เอา คำสั่ง Linux มายั่วให้อยากใช้บ้างนิดนึง ปรกติหากเราอยากเปลี่ยนชื่อไฟล์ ก็แค่ คลิกขวาแล้วก็ Rename ที่ชื่อก็จบ ทั้งใน Windows และ Ubuntu world ก็พอทำไหวหากจะมีสัก ๒๐ ไฟล์
แต่ลองดูว่าหากเรามี ไฟล์ในไดเรกทอรีอยู่ ๕๐,๐๐๐ นิดหน่อย แค่นิดหน่อย เราบังเอิญว่าต้องเปลี่ยนชื่อไฟล์ เออ คงไม่ทั้งหมดหรอก แต่แค่จะให้ List รายชื่อออกมาให้ดู ไม่ว่าจะใน Windows หรือ Ubuntu ก็สาหัสพอสมควรแล้ว เรายังต้องมาดูว่าอันไหนเปลี่ยนเป็นชื่อไหนอีก อืืองานนี้ ยากพอสมควร
หากเป็นเมื่อก่อน ก็ต้องอาศัย Application สักตัวเพื่อเปลี่ยนชื่อทั้งหมด เช่น Rename4you อะไรทำนองนั้น วันนี้ใช้งาน Ubuntu เป็นหลัก ลองมานั่ง จิ้มๆ เล่นดูใน Google ไปเจอวิธีนี้เข้า เออเข้าท่า ด้วยการใช้ sed เข้ามาช่วย
คำสั่งเป็น command line จึงไม่มีปัญหากับการแสดงชื่อทั้งหมดในไดเรกทอรี คือมีเท่าไร ก็ทำไปเรื่อยๆ
$ for i in data_??.???_???.379; do mv $i `echo $i | sed -e ‘s/379/377/g’`; done
โดยรวมคือ list ไฟล์ที่อยู่ในเงื่อนไข เข้ามาเป็น list ในตัวแปร i และเปลี่ยน string ที่กำหนดให้เป็นไปตามเงื่อนไข จากนั้นส่งให้คำสั่ง mv โอ้จบ
มีเท่าไรเปลี่ยนให้หมด คราวนี้ จะมั่วหรือมึนก็ขึ้นอยู่กับการสร้างเงื่อนไขแล้วครับ ไม่มีข้อจำกัดของ application แล้ว