28 điểm bởi xguru 2021-11-15 | 1 bình luận | Chia sẻ qua WhatsApp
  • Chỉ in ra 1 dòng
    sed -n '10p' file.txt
  • Thay ký tự trên mọi dòng ngoại trừ dòng số 5
    sed '5!/s/foo/bar/' file.txt
  • Thay thế bằng biểu thức chính quy trên mọi dòng bắt đầu bằng ký tự cụ thể
    sed '/^hello/ s/h/H/' file.txt
  • Chỉ thay thế từ dòng 5 đến dòng cuối cùng
    sed '5,$ s/foo/bar/' file.txt
  • Xóa file rỗng
    sed '/^$/d' file
  • In ra mọi dòng giữa hai biểu thức chính quy
    sed -nE '/^foo/,/^bar/p' file.txt
  • Dùng dấu phân cách tùy chỉnh để dễ tìm chuỗi có chứa dấu gạch chéo
    sed 's_/bin/bash_/bin/sh_' file.txt
  • Xóa chuỗi trùng lặp được phân tách bằng khoảng trắng (loại trừ trường hợp lặp 3 lần)
    sed -E 's_([a-zA-Z0-9_]+) \1_\1_ig' f1
  • Tìm một mẫu cụ thể, thay đổi nó, rồi chỉ lưu phần đã được chỉnh sửa sang file khác
    sed 's_foo_bar_w replaced.txt' file.txt
  • Thay nhiều mục cùng lúc
    sed -e 's_foo_bar_' -e 's_hello_HELLO_' file.txt
  • Xóa mọi comment giữa hai từ khóa và chèn một dòng trống
    sed -E '/start/,/end/ s/#.*//' file.txt
  • Xóa mọi chú thích bắt đầu bằng #
    sed -E '/^#/d' f1
  • Chỉ in ra cho đến khi xuất hiện mẫu cụ thể
    sed '/start/q' file.txt
  • Chèn một file sau một dòng cụ thể
    sed '5 r newfile.txt' file.txt
  • Thêm văn bản vào dòng ngay sau phần khớp với biểu thức chính quy cụ thể
    sed '/foo/a\AFTER FOO' file.txt
  • Thay thế dòng khớp với biểu thức chính quy cụ thể
    sed '/foo/c\FOO IS CHANGED' file.txt
  • Lưu mọi comment bắt đầu bằng # sang file khác
    sed -E '/^#/w comments.txt' file.txt
  • Chỉ in ra mọi dòng thứ hai (có thể đổi thành 3/4 v.v. để in cách dòng)
    sed -n '1~2p' file.txt
  • Chỉnh sửa trực tiếp file nhưng tạo bản sao lưu
    sed -i.bak 's/hello/HELLO/' file.txt
  • Thêm hai dòng trống sau khi khớp biểu thức chính quy
    sed -E '/^#/G G' file.txt

1 bình luận

 
tribela 2021-11-15

Việc có thể dùng các ký tự khác ngoài dấu gạch chéo làm dấu phân cách thật sự là một mẹo thiết yếu.

Bạn sẽ khá thường xuyên cần chứa dấu gạch chéo, chẳng hạn như khi đổi URL kho lưu trữ apt.