Cho tôi xem cách bạn sử dụng shell…

Vấn đề hôm nay tôi đặt ra là tôi muốn đổi toàn bộ các file trong thư mục hiện tại có extension là .php5 thành extension .php. Giờ hãy xem ta sử dụng các lệnh shell một cách đơn giản và hiệu quả như thế nào trong trường hợp này:

for old in *.php5; do mv $old `basename $old .php5`.php; done

Để tôi làm rõ một chút về sự kết hợp tuyệt vời trên. Đầu tiên là câu lệnh lặp qua tất cả các file có phần mở rộng (extension) là php5 trong thư mục hiện tại, sau đó là thao tác lần lượt trên từng file. Chẳng hạn file đầu tiên được tìm thấy là file index.php5, thao tác được làm là đổi “index.php5” thành `basename index.ph5 .php5`.php. Trình basename sẽ trả về “index” là phần tên file nằm trước “.php5”, rồi ta thêm “.php” vào để thành “index.php”.

Bây giờ, cũng với vấn đề trên, ai thích cầu kỳ thì vận dụng kiến thức về parameter expansion trong shell ta có thể nâng cao sự kết hợp này để nhìn “pro” hơn một chút:

for old in *.php5; do new=${old/.php5/.php}; mv $old $new; done

và đây là một chút “gian xảo” hơn ;):

for a in *php5 ; do mv $a ${a%%5} ; done

Nếu bạn là người cẩn thận, lo xa, hãy viết những câu lệnh trên vào một file shell script và lưu lại để tiện sử dụng lại nhiều lần. Ngoài ra, với những người có cá tính mạnh, thích khám phá, có hiểu biết về biểu thức chính quy (regular expression), ưa thích SEX, à lộn SED :”> có thể sẽ thấy thoải mái hơn với trình ‘rename’ có sẵn trong các bản Debian based distro:

rename ‘s/\.php5/.php/’ *.php5

Hãy cho tôi xem cách bạn sử dụng shell, tôi sẽ cho biết tính cách của bạn😉. – (C) 2007, Đông Thao

Đông Thao

About dongthao

The best things in life, they are free ... (Cry on my shoulder lyric)
This entry was posted in Linux, Linux Tutorial. Bookmark the permalink.

Có 2 phản hồi tại Cho tôi xem cách bạn sử dụng shell…

  1. pclouds nói:

    for i in *.php5;do mv “$i” “${i/.php5/.php}”;done

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s