Hướng dẫn sử dụng sed command – cách dùng và ví dụ

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.

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 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.

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

Lời kết

Sau khi đọc bài này, bạn đã biết SED command là gì, cách cài đặt SED và cách sử dụng cơ bản. Lệnh SED giúp người dùng sử dụng dòng lệnh bằng nhiều cách khác nhau. Nó hỗ trợ giải quyết vấn đề phức tạp một cách hiệu quả nhất. Không chỉ có SED, GNU – Linux còn có nhiều công cụ hữu dụng khác để quản lý VPS hằng ngày.

Author
Tác giả

Hai G.

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.