Hướng dẫn cách sử dụng lệnh SED trong Linux

Hướng dẫn chi tiết cách sử dụng lệnh SED trong Linux để sửa đổi nội dung của một tệp, lọc văn bản, cũng như thực hiện thay thế trong luồng dữ liệu.

Linux SED command là công cụ mạnh để giúp parse và transform text, nó cơ bản là một trình biên soạn văn bản để chỉnh sửa dữ liệu từ một file nguồn vào chuẩn, và có khả năng chỉnh sửa theo từng dòng một không cần tương tác. SED chạy được trên hầu hết các hệ điều hành lớn. Cú pháp và tính năng của SED chủ yếu giống với ed editor.

Cơ chế input là chuẩn nhập liệu input streams và từ file text. Cú pháp dạng script của SED có thể khó hiểu ban đầu. Tuy nhiên, nhiều tác vụ cũng chỉ tốn vài dòng SED scripts.

Hướng dẫn cách sử dụng lệnh SED trong Linux

Cài đặt SED Command

Trong HDH nền Linux, SED được cài đặt mặc định. Trước khi bắt đầu, bạn chỉ cần truy cập VPS qua SSH trước. Hãy xem hướng dẫn truy cập bằng PuTTY TẠI ĐÂY nếu bạn gặp vấn đề gì đó.

Lệnh sau sẽ dùng để kiểm tra sed được cài chưa

sed --version

Nếu vì lý do gì đó, nó chưa được cài, bạn có thể cài SED bằng apt package manager nếu đang dùng Linux Debian / GNU:

sudo apt-get install sed

Nhập lại lệnh sed –version để kiểm tra nó cài chưa và phiên bản bao nhiêu. Kết quả sẽ như sau:

sed (GNU sed) 4.2.2
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Jay Fenlason, Tom Lord, Ken Pizzini,
and Paolo Bonzini.
GNU sed home page: <http://www.gnu.org/software/sed/>.
General help using GNU software: <http://www.gnu.org/gethelp/>.
E-mail bug reports to: <bug-sed@gnu.org>

Khả năng của SED Command

Workflow cơ bản của SED là, Read, Execute và Display.

Read command nhận giá trị input và lưu trong pattern buffer. Phần thực thi sẽ thực thi tuần tự lệnh trên file. Sau khi thực thi, nó sẽ hiện kết quả output stream. Pattern Buffer được giải phóng và nội dung hiển thị lên giao diện. Read, execute, và display khởi động lại cho tới cuối file.

Ví dụ lệnh SED

Đơn giản SED đọc files và xuất văn bản của file đó ra. Bạn có thể dùng vi editor để tạo thử một file:

[user]: ~$ vi text.txt Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

Lệnh để đọc file text trên như sau:

[user]: ~$ sed ‘’ text.txt


Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

Lệnh SED Command sẽ nhận input từ file “text.txt”. Trước khi upload input file, viết một đối số dòng lệnh trong dấu ngoặc đơn. Nó sẽ dùng để thực thi SED.

SED đọc nội dung của file “text.txt” và chứa dữ liệu trong pattern buffer. Sau đó, nó thực thi lệnh.

Trong trường hợp này, chúng ta đẩy một đối số không nội dung, vì vậy sẽ không có gì xảy ra. SED hiển thị nội dung chứa trong file và xóa nó trong pattern buffer.

[user]: ~$ sed ‘’Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer ProgramsPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

Lệnh SED ‘’ nhận input từ bàn phím. Nó hiển thị ở dòng đầu tiên và dòng thứ 2 . Nó hiển thị nội dung được lưu trong pattern buffer. Để đóng session SED, gõ CTRL+D.

>>> Mời bạn tham khảo thêm: Lệnh SED trong Linux/Unix: Cấu trúc và cách sử dụng chi tiết

Các lệnh SED Command cơ bản

Hãy cùng học cách sử dụng lệnh Linux SED command cơ bản:

Delete command

Để thực hiện lệnh xóa – delete command, sử dung option d với file trong dấu ngoặc đơn. Lệnh sẽ xóa dòng đầu tiên của file text.txt

[user]: ~$ sed ‘1d’ text.txt

Write Command:

Để thực thi lệnh write, thêm vào option w, số dòng, và tên file trong ngoặc đơn. Lệnh sau sẽ đọc dòng thứ 2 và viết vào trong file text2.txt.

[user]: ~$ sed '2~2 w text2.txt' text.txt
[user]: ~$ cat text2.txt
Harold Abelson, Structure and Interpretation of Computer Programs

Append Command

Sử dụng keyword và số dòng trong nháy đơn. Sau khi đóng dấu nháy đơn, thêm nguồn mở rộng vào. Lệnh sau sẽ mở rộng ở dòng thứ 2 của file txt.txt.

[user]: ~$ sed '2 a The Append example' text.txt[user]: ~$ cat text.txtPrograms must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer ProgramsThe Append example'

Read Command

Sử dụng option r và gõ đường dẫn file trong dấu nháy đơn. Lệnh sau sẽ đọc input trong file text, và mở rộng sau dòng thứ 3 trong file text2.txt.

[user]: ~$ sed '3 r text.txt' text2.txt
[user]: ~$ cat text2.txt
Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs
The Append example'
Programs must be written for people to read, and only incidentally for machines to execute.” ― Harold Abelson, Structure and Interpretation of Computer Programs

Chúc bạn thành công!

Nguồn: hostinger