Cách sử dụng lệnh tr và fmt để thao tác văn bản trên Linux

Cách sử dụng lệnh tr và fmt để thao tác văn bản trên Linux

Chia sẻ kiến thức 30/06/2023

Các lệnh tr và fmt, viết tắt của translate và format, là hai trong số các lệnh thao tác văn bản quan trọng nhất trên Linux.

 

Các lệnh Linux như tr và fmt giúp thay đổi, định dạng và sửa đổi tệp văn bản ngay từ terminal.

Trong bài viết này, FUNiX sẽ hướng dẫn bạn cách sử dụng lệnh tr và fmt để định dạng văn bản trong các trường hợp sử dụng khác nhau. Vậy tr và fmt là gì? Và làm thế nào để bạn sử dụng chúng?

 

Lệnh tr là gì?

Lệnh tr là viết tắt của từ translate (dịch) và giúp người dùng xóa hoặc thay thế các ký tự cụ thể trong tệp văn bản. Nó thường được sử dụng cùng với các lệnh khác và hoạt động bằng cách lấy đầu vào tiêu chuẩn, thực hiện thao tác trên đó và ghi kết quả vào đầu ra tiêu chuẩn.

Cú pháp lệnh tr

Lệnh tr có cú pháp cơ bản là:

 tr [option]... SET1 [SET2]

Set là các chuỗi ký tự và một số trình tự được diễn giải mà terminal tự động nhận dạng, bao gồm:

\\ Backslash
\b Backspace
\t Horizontal tab
\v Vertical tab
[:alnum:] All letters and digits
[:alpha:] All letters
[:blank:] Horizontal whitespaces
[:digit:] All digits
[:lower:] All lowercase characters
[:punct:] All punctuation characters
[:space:] Horizontal or vertical whitespace characters
[:upper:] All uppercase letters

Cách sử dụng lệnh tr

Bạn có thể sử dụng lệnh tr để thay đổi viết hoa/viết thường của tệp văn bản, xóa số, thay thế dấu cách bằng tab và thậm chí đặt mọi từ trên một dòng mới. Các khả năng của lệnh tr là rất lớn và bạn có thể làm được rất nhiều thứ nếu biết cách sử dụng nó.

Ví dụ, để tạo một tệp văn bản: muo.txt . Nội dung của tệp sẽ là:

MakeUseOf. Technology, Simplified! 1234 

Thay thế ký tự bằng lệnh tr

Lệnh tr có thể giúp bạn thay thếmột số ký tự bằng các ký tự khác. Ví dụ: nếu bạn muốn thay thế các ký tự đầu tiên của mỗi từ bằng ABCD, hãy thực hiện lệnh sau:

cat muo.txt | tr MTS1 ABCD

Lưu ý: Lệnh cat được sử dụng để hiển thị nội dung của một tập tin.

Kết quả:

AakeUseOf. Bechnology, Cimplified! D234

Thay đổi các từ trong tệp từ chữ thường thành chữ hoa

Để thay đổi từ chữ thường thành chữ hoa, hãy thực hiện một trong các lệnh sau:

 
cat muo.txt | tr a-z A-Z 
cat muo.txt | tr [:lower:] [:upper:]

Kết quả:

MAKEUSEOF. TECHNOLOGY, SIMPLIFIED! 1234 

Thay đổi từ chữ hoa thành chữ thường

Để thay đổi từ chữ hoa thành chữ thường, hãy thực hiện một trong các lệnh sau:

cat muo.txt | tr A-Z a-z 
cat muo.txt | tr [:upper:] [:lower:]

Kết quả:

makeuseof. technology, simplified! 1234

Thay thế khoảng trắng bằng tab

Thay thế khoảng trắng bằng các tab với lệnh sau:

cat muo.txt | tr [:space:] '\t' 

Kết quả:

MakeUseOf. Technology, Simplified! 1234 

Ngoài ra, nếu bạn muốn thay thế khoảng trắng bằng ký tự xuống dòng—hãy thay thế “\t” bằng “\n”.

Xóa ký tự bằng lệnh tr

Để xóa các ký tự, hãy sử dụng tùy chọn -d cùng với lệnh tr. Chẳng hạn, nếu bạn muốn xóa chữ “e” khỏi mọi từ trong tệp muo.txt, hãy thực hiện lệnh này:

cat muo.txt | tr -d 'e' 

Kết quả:

MakUsOf. Tchnology, Simplifid! 1234 

Xóa tất cả các dấu câu

Nếu bạn muốn xóa tất cả các dấu câu trong một tệp, hãy sử dụng tùy chọn -d cùng với trình tự được giải thích (interpreted sequence), [:punct:] :

cat muo.txt | tr -d [:punct:]

Kết quả:

MakeUseOf Technology Simplified 1234

Xóa tất cả các chữ số

Để xóa tất cả các chữ số trong một tệp văn bản, hãy chạy lệnh sau:

cat muo.txt | tr -d [:digit:] 

Kết quả:

MakeUseOf. Technology, Simplified! 

Sử dụng tùy chọn bổ sung tr

Lệnh tr đi kèm với tùy chọn -c thực hiện ngược lại với thao tác ban đầu. Hãy sử dụng lệnh trước đó làm ví dụ. Nếu bạn thêm tùy chọn bổ sung vào lệnh này, nó sẽ xóa tất cả các ký tự không phải là chữ số. 

 
cat muo.txt | tr -cd [:digit:] 

Kết quả:

1234 

Lệnh fmt là gì?

Lệnh fmt là một công cụ định dạng văn bản đơn giản mà bạn có thể dùng để in và xử lý văn bản trên Linux. Bạn cũng có thể sử dụng lệnh để định dạng email trả lời.

Để nhận trợ giúp dòng lệnh liên quan đến lệnh fmt, hãy xem trang hướng dẫn của nó bằng cách chạy:

man fmt

Cú pháp lệnh fmt

Lệnh fmt có cú pháp cơ bản là:

fmt [-WIDTH] [OPTION] [FILE]

Cách sử dụng lệnh fmt

Trong ví dụ này, hãy tạo một tệp có tên file.txt và thêm văn bản sau:

Technology, Simplified
We're tech enthusiast on a mission to teach the world how to use and undestand the tech in their lives.

Sử dụng lệnh fmt mặc định

Lệnh fmt tối ưu hóa tệp văn bản và in nó ra ở định dạng dễ đọc hơn. Chiều rộng mặc định của lệnh fmt là 75 cột. Thực hiện lệnh này để thử:

fmt file.txt

Kết quả:

Technology, Simplified We're tech enthusiast on a mission to teach the
world how to use and undestand the tech in their lives.

Thay đổi chiều rộng của văn bản

Để thay đổi độ rộng của tệp, bạn sử dụng tùy chọn -w . Cú pháp trông như sau:

fmt -w N filename

Để thay đổi độ rộng tệp thành 20 cột, hãy thực hiện lệnh này:

fmt -w 20 file.txt

Kết quả:

Technology,
Simplified We're
tech enthusiast on
a mission to teach
the world how to
use and undestand
the tech in their
lives.

Tách các dòng văn bản dài

Để tách các dòng dài, hãy sử dụng tùy chọn -s. Hãy dùng thử:

fmt -s file.txt

Kết quả:

Technology, Simplified
We're tech enthusiast on a mission to teach the world how to use and
undestand the tech in their lives.

Thụt lề dòng đầu tiên của mỗi đoạn

Để đánh dấu dòng đầu tiên của mỗi đoạn bằng cách thụt lề, hãy sử dụng tùy chọn -t. Đây là cú pháp:

fmt -t filename.

Hãy thử nó ra:

fmt -t file.txt

Kết quả:

Technology, Simplified
    We're tech enthusiast on a mission to teach the world how to use and
undestand the tech in their lives.

tr và fmt: Các lệnh thao tác văn bản hữu ích

tr và fmt giúp việc định dạng và xử lý văn bản trở nên dễ dàng hơn. Linux và các hệ điều hành dựa trên Unix khác cung cấp rất nhiều lệnh thao tác văn bản cho mọi nhu cầu định dạng văn bản. Bạn chỉ cần biết chúng là gì và cách sử dụng chúng.

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/linux-text-manipulation-tr-and-fmt-commands/

 
ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại