Đặc biệt chú ý khi dùng sed bạn phải chắc chắn file nguồn thuần định dạng Linux. Bạn có thể tham khảo vấn đề đó ở link này.
Công thức sử dụng:
sed -i "s/ky-tu-cu/ky-tu-moi/g" taptin.txt
Trong đó:
ky-tu-cu
là ký tự cũ cần được thay thế bằng ký tự mới
ky-tu-moi
là ký tự cần được thêm vào tập tin thay thế cho ký tự cũ
Ví dụ chúng ta tạo một tập tin taptin.txt
có nội dung như sau:
nano taptin.txt
Ban la
nguoi dep
nhat Viet nam
Bây giờ chúng ta cần thay thế từ Ban thành từ Toi
sed -i "s/Ban/Toi/g" taptin.txt
Xem lại tập tin:
cat taptin.txt
Toi la
nguoi dep
nhat Viet nam
Trong ví dụ trên từ Ban chính là từ khóa để tìm kiếm và thay thế.
Thay thế cả một hàng có chứa từ khóa:
Xem lại tập tin, ta vẫn có:
cat taptin.txt
Toi la
nguoi dep
nhat Viet nam
Bây giờ ta muốn thay thế cả một hàng cho bất kỳ hàng nào có chứa ký tự Toi thành Chung ta can tim mot chúng ta có công thức
như sau:
sed -i "s/.*ky-tu-cu.*/ky-tu-moi/" taptin.txt
Thay thế các ký tự cũ và mới vào công thức:
sed -i "s/.*Toi.*/Chung ta can tim mot/" taptin.txt
Kiểm tra lại nội dung tập tin:
cat taptin.txt
Chung ta can tim mot
nguoi dep
nhat Viet nam
Thay thế bằng biến:
Ví dụ bạn có biến s="ky-tu-cu"
và r="ky-tu-moi"
giờ bạn muốn replace vào trong tập tin đó thì chúng ta có công thức như sau:
s='ky-tu-cu'
r='ky-tu-moi'
sed -i "s#$s#$r#g" taptin.txt
Chẳng hạn ta muốn thay thế trở lại như cũ Chung ta can tim mot thành Ban la:
s='Chung ta can tim mot'
r='Ban la'
sed -i "s#$s#$r#g" taptin.txt
Kiểm tra lại tập tin:
cat taptin.txt
Ban la
nguoi dep
nhat Viet nam
Bạn chú ý đây chỉ mới là 3 cách sử dụng cơ bản sed
trong Linux, với các trường hợp khác bạn có thể tham khảo thêm ở đây.