Posted by: wmap | September 4, 2011

เปลี่ยนให้หมดเลย ฉับฉับฉับ

วันนี้ เอา คำสั่ง 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 แล้ว

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Categories

Follow

Get every new post delivered to your Inbox.