Computer >> Máy Tính >  >> Lập trình >> Lập trình BASH

Lệnh tr trong Linux - Nó là gì và Cách sử dụng nó

Các tr ( tr anslate) lệnh trong Linux đọc văn bản từ đầu vào chuẩn , thực hiện một số sửa đổi đối với văn bản, rồi gửi văn bản đó tới đầu ra chuẩn . Bài viết này giải thích và chỉ ra lý do cũng như cách bạn có thể sử dụng nó.

tr Cú pháp lệnh

Đây là cú pháp bạn sẽ cần để sử dụng lệnh:

tr OPTIONS SET1 [SET2]

Lưu ý rằng:

  • TÙY CHỌN sẽ là danh sách các tùy chọn từ bảng dưới đây
  • Các ký tự trong SET1 sẽ được thay thế bằng các ký tự ở vị trí tương ứng trong SET2
    • Đây là tùy chọn - một số TÙY CHỌN đều có khả năng thực hiện các bản dịch, vì vậy cả SET không nhất thiết phải có.
  • Bạn sẽ nhận thấy thiếu văn bản đang được xử lý - văn bản này được cung cấp bằng cách sử dụng chuyển hướng tiêu chuẩn - thông tin thêm về điều này trong các ví dụ bên dưới.

Dưới đây là các TÙY CHỌN có sẵn - ngay từ hướng dẫn sử dụng:

TÙY CHỌN
-c Sử dụng phần bổ sung của SET1
-d Xóa các ký tự trong SET1, không dịch
-s Thay thế từng chuỗi ký tự lặp lại được liệt kê trong SET chỉ định cuối cùng bằng một lần xuất hiện duy nhất của ký tự đó
-t Đầu tiên, cắt ngắn SET1 thành độ dài của SET2

Nếu bạn cần thay thế hoặc xóa các ký tự đặc biệt, như dòng mới và tab trong SET, bạn có thể sử dụng các trình tự sau:

Trình tự được diễn giải Ký tự đặc biệt
\ NNN Ký tự có giá trị bát phân NNN (1 đến 3 chữ số bát phân)
\\ Dấu gạch chéo ngược
\ b Backspace
\ n Dòng mới
\ r Trả lại
\ t Tab ngang
[:alnum:] Tất cả các chữ cái và chữ số
[:alpha:] Tất cả các chữ cái
[:blank:] Tất cả khoảng trắng ngang
[:chữ số:] Tất cả các chữ số
[:low:] Tất cả các chữ cái thường
[:dấu cách:] Tất cả khoảng trắng ngang hoặc dọc
[:upper:] Tất cả các chữ hoa

Tôi chỉ bao gồm một số tùy chọn / chuỗi thường được sử dụng ở trên (vì có khá nhiều) . Bạn có thể xem danh sách đầy đủ các tùy chọn lệnh trong hướng dẫn sử dụng, có thể tìm thấy danh sách này bằng cách chạy:

man tr

tr Ví dụ về lệnh

Dưới đây là một vài ví dụ về cách sử dụng tr lệnh.

Đây chỉ là những ví dụ; bạn có thể kết hợp các tùy chọn và trình tự để có được kết quả mong muốn của riêng bạn.

Xóa ký tự

Ví dụ dưới đây loại bỏ các ký tự được chỉ định khỏi một chuỗi. Đầu ra của echo lệnh được piped đến tr lệnh.

Đây là cách lệnh tr nhận văn bản bạn muốn dịch - nó phải được cung cấp dưới dạng đầu vào chuẩn thông qua đường ống hoặc chuyển hướng .

echo "axbxcxdx" | tr -d 'x'

Ở trên, -d tùy chọn hướng dẫn tr để xóa ký tự x từ đầu ra của echo lệnh.

Điều này sẽ trả về:

abcd

chữ thường thành UPPERCASE

Ví dụ dưới đây sử dụng các trình tự được diễn giải trên / dưới để thay thế tất cả các ký tự viết thường bằng các ký tự viết hoa:

echo "aBcDeFg" | tr '[:lower:]' '[:upper:]'

Điều này sẽ xuất ra:

ABCDEFG

Thay thế các ký tự

tr có lẽ được sử dụng phổ biến nhất để thay thế các ký tự trong một chuỗi - ví dụ:thay thế khoảng trắng bằng dấu gạch ngang:

echo "frogs and fish" | tr '[:blank:]' '-'

Cái nào sẽ xuất ra:

frogs-and-fish

Ví dụ này sử dụng hai SET - tập đầu tiên chứa mã định danh cho khoảng trắng / trống (tức là tab dấu cách), tập thứ hai chứa dấu gạch ngang - do đó, khoảng trắng được thay thế bằng dấu gạch ngang (SET2 thay thế SET1).

Điều này có thể hữu ích khi tạo tên tệp để tải lên trang web và đảm bảo rằng không có khoảng trắng trong các tên tệp đó.

Thay thế nhiều ký tự

Trong ví dụ cuối cùng, mỗi tập hợp chỉ chứa một ký tự duy nhất. Có thể cung cấp nhiều ký tự để thay thế nhiều ký tự cùng một lúc:

echo "frogs and fish" | tr 'sf' 'SF'

Cái nào sẽ xuất ra:

FrogS and FiSh

Như bạn có thể thấy, các chữ cái tương ứng trong chữ cái đầu tiên được thay thế bằng các chữ cái trong chữ cái thứ hai.

Xóa các ký tự lặp lại

Dưới đây, khoảng trắng lặp lại không cần thiết bị xóa khỏi một số văn bản:

echo 'Absolutely spaced                out' | tr -s '[:space:]'

Cái nào sẽ xuất ra:

Absolutely spaced out

[:blank:] số nhận dạng đã được sử dụng với -s tùy chọn để xác định và loại bỏ khoảng trắng lặp lại.