Daily Tips : การเปลี่ยนชื่อไฟล์พร้อมกันที่ละหลายๆ ไฟล์

mrgill   | March 23, 2010   |   1,656 Views

วันนี้พี่ที่บริษัทโทรมาเพราะมีปัญหาแตกไฟล์ที่ archive ไว้ไม่ได้เพราะติดปัญหาชื่อไฟล์มีเครื่องหมายโคลอน ” : ” อยู่ในไฟล์ด้วย เพราะ shell script ที่ผมเขียนไว้ให้ archive ไฟล์ตั้งให้มันสร้างชื่อไฟล์เป็นชั่วโมงและแสดงนาทีโดยผมเลือกใช้ ” : ” กั้นระหว่างหน่วยชั่วโมงและนาที ผมลอง ssh เข้าไปดูแล้วก็พบว่ามีไฟล์เยอะมากครั้นจะนั่ง rename ทีละไฟล์ก็คงลำบากแน่ๆ ก็เลย เข้า google แล้ว search วิธีการ rename ไฟล์ที่ละหลายๆ ไฟล์ก็ไปเจออยู่ที่ http://www.cyberciti.biz/tips/renaming-multiple-files-at-a-shell-prompt.html ทำตามเสร็จก็เลยคิดว่าเอามาเขียนไว้กันลืมด้วยดีกว่า

สมมติว่าผมมีไฟล์ file_XX:xx.txt อยู่ ซึ่งผมสร้างมาโดยคำสั่ง touch

mrgill@mrgill-laptop:~/lab_command$ ls file_15:35.txt file_16:30.txt file_18:55.txt

ถ้าหากผมใช้คำสั่ง rename หรือ mv ในการเปลี่ยนชื่อไฟล์ file_XX:xx.txt ให้เป็น file_XX_xx.txt ก็คงต้องทำ 3 ครั้ง แต่ด้วยวิธีต่อไปนี้เราสามารถเปลี่ยนชื่อไฟล์ทั้งหมดให้เป็น file_XX_xx.txt ได้ในคำสั่งเดียว โดย

mrgill@mrgill-laptop:~/lab_command$ rename "s/\:/_/g" *.txt

เมื่อ ” \: ” คือสิ่งที่เราต้องการจะเปลี่ยน และ ” _ ” คือสิ่งที่เราจะเอามาแทน ” : ” และ *.txt คือนามสุกลของไฟล์ที่เราต้องการจะเปลี่ยน
ผลที่ได้คือ

mrgill@mrgill-laptop:~/lab_command$ ls file_15_35.txt file_16_30.txt file_18_55.txt

ลองนำไปประยุกต์ใช้กันดู

Share/Save

Comments

comments

Powered by Facebook Comments

Category : Daily command,Daily tips,Linux

Tags: , , ,

การ config squid3 ให้เก็บชื่อ hostname ของ client ใน access.log ฮากลิ้งลิงเล่นกล


Recent Entries

Random Posts

Social Network

Tag Cloud

Calendar

March 2010
S M T W T F S
« Feb   Apr »
 123456
78910111213
14151617181920
21222324252627
28293031  

Twitter: imrgill

RSS LinuxToday

RSS HowToForge

RSS UbuntuClub

RSS Blognone

RSS PowerWindowsBlog

Tag

Categories

Archives

Blogroll