Các bản phân phối GNU / Linux bao gồm vô số chương trình để xử lý văn bản, hầu hết trong số đó được cung cấp bởi các tiện ích cốt lõi của GNU. Có một chút đường cong học tập, nhưng những tiện ích này có thể tỏ ra rất hữu ích và hiệu quả khi được sử dụng đúng cách.
Dưới đây là mười ba công cụ thao tác văn bản mạnh mẽ mà mọi người dùng dòng lệnh nên biết.
1. con mèo
Con mèo được thiết kế để con mèo tệp enate nhưng thường được sử dụng để hiển thị một tệp duy nhất. Không có bất kỳ đối số nào, mèo đọc đầu vào chuẩn cho đến khi Ctrl + D được nhấn (từ đầu cuối hoặc từ đầu ra chương trình khác nếu sử dụng đường ống). Đầu vào chuẩn cũng có thể được chỉ định rõ ràng bằng -
.
Cat có một số tùy chọn hữu ích, đáng chú ý là:
-
-A
in “$” ở cuối mỗi dòng và hiển thị các ký tự không in được bằng ký hiệu dấu mũ. -
-n
đánh số tất cả các dòng. -
-b
các dòng số không được để trống. -
-s
giảm một loạt các dòng trống thành một dòng trống duy nhất.
Trong ví dụ sau, chúng tôi đang nối và đánh số nội dung của tệp1, đầu vào chuẩn và tệp3.
cat -n file1 - file3
2. sắp xếp
Đúng như tên gọi của nó, sort
sắp xếp nội dung tệp theo thứ tự bảng chữ cái và số.
3. uniq
Uniq lấy một tệp đã được sắp xếp và loại bỏ các dòng trùng lặp. Nó thường được xâu chuỗi với sort
trong một lệnh duy nhất.
4. dấu phẩy
Comm được sử dụng để so sánh hai tệp đã được sắp xếp, từng dòng một. Nó xuất ra ba cột:hai cột đầu tiên chứa các dòng duy nhất cho tệp đầu tiên và thứ hai tương ứng và cột thứ ba hiển thị các dòng được tìm thấy trong cả hai tệp.
5. cắt
Cut được sử dụng để truy xuất các phần cụ thể của dòng, dựa trên các ký tự, trường hoặc byte. Nó có thể đọc từ một tệp hoặc từ đầu vào chuẩn nếu không có tệp nào được chỉ định.
Cắt theo vị trí ký tự
-c
tùy chọn chỉ định một vị trí ký tự đơn hoặc một hoặc nhiều phạm vi ký tự.
Ví dụ:
-
-c 3
:ký tự thứ 3. -
-c 3-5
:từ ký tự thứ 3 đến thứ 5. -
-c -5
hoặc-c 1-5
:từ ký tự thứ 1 đến thứ 5. -
-c 5-
:từ ký tự thứ 5 đến cuối dòng. -
-c 3,5-7
:ký tự thứ 3 và từ ký tự thứ 5 đến thứ 7.
Cắt theo lĩnh vực
Các trường được phân tách bằng dấu phân cách bao gồm một ký tự duy nhất, được chỉ định bằng -d
lựa chọn. -f
tùy chọn chọn một vị trí trường hoặc một hoặc nhiều phạm vi trường sử dụng cùng một định dạng như trên.
6. dos2unix
GNU / Linux và Unix thường kết thúc các dòng văn bản bằng nguồn cấp dòng (LF), trong khi Windows sử dụng ký tự xuống dòng và nguồn cấp dòng (CRLF). Các vấn đề về khả năng tương thích có thể phát sinh khi xử lý văn bản CRLF trên Linux, đây là nơi dos2unix xuất hiện. Nó chuyển đổi các đầu cuối CRLF thành LF.
Trong ví dụ sau, tệp file
lệnh được sử dụng để kiểm tra định dạng văn bản trước và sau khi sử dụng dos2unix
.
7. gấp
Để làm cho các dòng văn bản dài dễ đọc và dễ xử lý hơn, bạn có thể sử dụng fold
, bao bọc các dòng theo chiều rộng được chỉ định.
Gấp hoàn toàn khớp với chiều rộng được chỉ định theo mặc định, ngắt các từ khi cần thiết.
fold -w 30 longline.txt
Nếu không mong muốn các từ ngắt quãng, bạn có thể sử dụng -s
tùy chọn ngắt ở dấu cách.
fold -w 30 -s longline.txt
8. iconv
Công cụ này chuyển đổi văn bản từ bảng mã này sang bảng mã khác, rất hữu ích khi xử lý các mã hóa bất thường.
iconv -f input_encoding -t output_encoding -o output_file input_file
- “input_encoding” là kiểu mã hóa mà bạn đang chuyển đổi.
- “output_encoding” là kiểu mã hóa bạn đang chuyển đổi sang.
- “output_file” là tên tệp mà iconv sẽ lưu vào.
- “input_file” là tên tệp mà iconv sẽ đọc từ đó.
Lưu ý: bạn có thể liệt kê các bảng mã có sẵn bằng iconv -l
9. sed
sed là một s mạnh mẽ và linh hoạt tream ed itor, được sử dụng phổ biến nhất để tìm và thay thế các chuỗi bằng cú pháp sau.
Lệnh sau sẽ đọc từ tệp được chỉ định (hoặc đầu vào chuẩn), thay thế các phần của văn bản khớp với mẫu biểu thức chính quy bằng chuỗi thay thế và xuất kết quả ra đầu cuối.
Tên tệpsed s/pattern/replacement/g filename
Thay vào đó, để sửa đổi tệp gốc, bạn có thể sử dụng -i
cờ.
10. wc
wc
tiện ích in số byte, ký tự, từ hoặc dòng trong một tệp.
11. tách ra
Bạn có thể sử dụng split
để chia tệp thành các tệp nhỏ hơn, theo số dòng, theo kích thước hoặc cho một số tệp cụ thể.
Phân chia theo số dòng
split -l num_lines input_file output_prefix
Phân chia theo byte
split -b bytes input_file output_prefix
Tách thành một số tệp cụ thể
split -n num_files input_file output_prefix
12. tac
Tac, ngược lại là con mèo, thực hiện chính xác điều đó:nó hiển thị các tệp với các dòng theo thứ tự ngược lại.
13. tr
Công cụ tr được sử dụng để dịch hoặc xóa các bộ ký tự.
Tập hợp các ký tự thường là một chuỗi hoặc các dải ký tự. Ví dụ:
- “A-Z”:tất cả các chữ cái viết hoa
- “a-z0-9”:chữ cái viết thường và chữ số
- “\ n [:câu:]”:ký tự dòng mới và dấu câu
Tham khảo trang hướng dẫn sử dụng để biết thêm chi tiết.
Để dịch bộ này sang bộ khác, hãy sử dụng cú pháp sau:
tr SET1 SET2
Ví dụ:để thay thế các ký tự viết thường bằng các ký tự viết hoa tương đương, bạn có thể sử dụng như sau:
tr "a-z" "A-Z"
Để xóa một nhóm ký tự, hãy sử dụng -d
cờ.
tr -d SET
Để xóa phần bổ sung của một tập hợp ký tự (tức là mọi thứ ngoại trừ tập hợp), hãy sử dụng -dc
.
tr -dc SET
Kết luận
Có rất nhiều điều để tìm hiểu khi nói đến dòng lệnh Linux. Hy vọng rằng các lệnh trên có thể giúp bạn xử lý văn bản trong dòng lệnh tốt hơn.