Mục Lục
1. Tổng quan
Trong macOS, câu lệnh sed
là một công cụ mạnh mẽ để thực hiện các thay đổi trên dòng văn bản trong các tệp tin văn bản. sed
là viết tắt của “stream editor,” và nó được sử dụng chủ yếu để xử lý và biến đổi dữ liệu văn bản theo các quy tắc cụ thể.
Dưới đây là một số tùy chọn và ví dụ cơ bản về cách sử dụng sed
trong macOS:
2. Cú pháp cơ bản:
sed [tùy chọn] 'lệnh' tên_tệp
3. Các tuỳ chọn của lệnh “sed”:
Lệnh sed
có nhiều tuỳ chọn (options) để điều chỉnh cách thực hiện các thay đổi trên văn bản. Dưới đây là một số tuỳ chọn quan trọng:
- -n, –quiet, –silent: Không in ra các dòng sau khi thực hiện các thay đổi. Thường được sử dụng khi bạn chỉ muốn in ra các dòng đã được xử lý theo ý muốn.
- -e script, –expression=script: Cho phép chỉ định một hoặc nhiều kịch bản để thực hiện trên văn bản. Nếu có nhiều kịch bản, chúng sẽ được thực hiện theo thứ tự.
- -f script-file, –file=script-file: Đọc các kịch bản từ tệp tin script-file thay vì trực tiếp từ dòng lệnh.
- -r, –regexp-extended: Sử dụng biểu thức chính quy mở rộng (extended regular expressions) thay vì biểu thức chính quy cơ bản.
- -i[SUFFIX], –in-place[=SUFFIX]: Thực hiện thay đổi trực tiếp trên tệp tin đầu vào thay vì in ra đầu ra mới. SUFFIX có thể được sử dụng để tạo bản sao của tệp tin gốc với một phần mở rộng.
- -c, –copy: Bản sao đầu vào ra đầu ra mà không thực hiện bất kỳ thay đổi nào.
- -s, –separate: Xử lý mỗi tệp tin đầu vào như là một đầu vào riêng lẻ, thay vì kết hợp chúng lại.
- -u, –unbuffered: Xử lý dòng lệnh đầu ra mà không đệm, giúp đầu ra xuất hiện ngay lập tức.
- –version: Hiển thị thông tin về phiên bản
sed
. - –help: Hiển thị thông tin trợ giúp về cách sử dụng
sed
và các tuỳ chọn.
Để biết thêm chi tiết và các tuỳ chọn khác, bạn có thể xem tài liệu hướng dẫn sed
bằng cách sử dụng lệnh man sed
trong môi trường dòng lệnh của hệ điều hành.
4. Ứng dụng của câu lệnh “sed”
Câu lệnh sed
(stream editor) là một công cụ mạnh mẽ trong môi trường dòng lệnh, được thiết kế để thực hiện các phương thức biên tập và xử lý văn bản. Dưới đây là một số ứng dụng phổ biến của câu lệnh sed
:
- Thay thế và Sửa Đổi Văn Bản:
sed 's/old/new/g' file
: Thay thế tất cả các xuất hiện của chuỗi “old” bằng chuỗi “new” trong file.sed 's/pattern/replacement/' file
: Thực hiện thay thế đầu tiên của mẫu bằng phần thay thế trong mỗi dòng.
- Xóa và Loại Bỏ Dòng:
sed '/pattern/d' file
: Xóa các dòng chứa mẫu cụ thể.sed '1,5d' file
: Xóa các dòng từ dòng 1 đến dòng 5.
- Thêm và Chèn Văn Bản:
sed '3i\inserted line' file
: Chèn dòng “inserted line” trước dòng thứ 3.sed '$a\appended line' file
: Chèn dòng “appended line” sau dòng cuối cùng.
- In và Hiển Thị Nội Dung:
sed -n '1,10p' file
: Hiển thị nội dung từ dòng 1 đến dòng 10.sed '/pattern/p' file
: Hiển thị các dòng chứa mẫu cụ thể.
- Biên Tập Đa Dạng:
sed 's/\(pattern\)/\1/' file
: Sử dụng nhóm và backreference để tái sử dụng nội dung phù hợp.sed -e 's/expr/replace/' -e 's/expr/replace/' file
: Kết hợp nhiều lệnhsed
trên cùng một dòng lệnh.
- Xử Lý Batch và Tự Động Hóa:
sed -i 's/old/new/g' file
: Thực hiện thay thế trực tiếp trên file (cẩn thận với tùy chọn này vì nó làm thay đổi trực tiếp file).
- Tích Hợp với Pipe và Đường Ốp:
command | sed 's/old/new/g'
: Sử dụng kết quả của một lệnh khác như đầu vào chosed
.
sed
là một công cụ linh hoạt và mạnh mẽ, giúp tối ưu hóa và tự động hóa các nhiệm vụ biên tập văn bản trong môi trường dòng lệnh.
Xin chào các bạn!
Bài viết này dùng AI ChatGPT viết sau đó được tôi chọn lựa, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí mang tính cá nhân về các vấn đề của tôi và giải pháp. Tôi lưu tại website này để tra cứu và chia sẻ cho cộng đồng. Tôi tin rằng nội dung này giải quyết vấn đề của tôi thì cũng giải quyết vấn đề của các bạn.
Tôi là Minh, sống tại Hà Nội. Tôi là kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Hiện nay, công việc chính của tôi là phát triển các app trên iOS và Android. Các ngôn ngữ và framework yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh