Một lệnh được sử dụng nhiều để thao tác chỉnh sửa chuỗi ký tự được dùng phổ biến trên Linux đó là lệnh Sed Command. Bài viết này sẽ hướng dẫn các bạn một số thao tác hay sử dụng với lệnh Sed mà vinasupport.com tổng hợp được.
Sửa chuỗi ký tư trong file / Replace text string in a file
sed -i 's/<old-text>/<new-text>/g' <file>
Với:
- <old-text>: Chuỗi ký tự cần thay thế (tìm kiếm)
- <new-text>: Chuỗi ký tự thay thế
- <file>: File cần sửa
Chỉ Replace với kết quả tìm kiếm đầu tiên / Replace only the first occurrence
sed -e '0,/<pattern>/{s/<pattern>/<replace>/;}' <file>
Tư line 0 tìm <pattern> và thay thế nó với <replace>
Thêm text vào line cố định / Insert a text at specific line number
sed -i '$<line_number>i $<string>' <file>
Với:
- <line_number>: Dòng sẽ thêm chuỗi vào
- <string>: Chuỗi cần thêm
Tìm kiếm và thêm chuỗi ký tự vào đằng sau / Find and add text after pattern
sed '/<pattern>/a <string>' <file>
Với:
- <pattern>: Pattern cần tìm kiếm
- <string>: Chuỗi cần thêm vào
VD: Thêm chuỗi vào sau [mysqld] trong file my.cnf
sed '/\[mysqld\]/a # set default collation\ collation-server = utf8_unicode_ci\ init-connect='\''SET NAMES utf8'\''\ character-set-server = utf8\' /etc/mysql/my.cnf
Xóa toàn bộ nội dung bắt đầu từ chuỗi cần tìm
sed -i '/^<string>/,$d' <file>
Với <string> là chuỗi cần xóa
VD: Xóa dòng “# For Oracle Database” trong file .bash_profile
sed -i '/^# For Oracle Database/,$d' ~/.bash_profile
Xóa toàn bộ nội dung giữa 2 pattern
sed -i '/<from>/,/<to>/d' <file>
Với: <from> là chuỗi bắt đầu, và <to> là chuỗi kết thúc
Nguồn: vinasupport.com