Lệnh Pipe, Grep và Sort trong Linux/Unix kèm các ví dụ
⚡ Tóm tắt thông minh
Các lệnh pipe, grep và sort trong Linux và Unix dùng để xâu chuỗi và lọc văn bản: pipe chuyển kết quả đầu ra của lệnh này sang lệnh tiếp theo, grep tìm kiếm các mẫu, và sort sắp xếp các dòng, trong khi filter biến đổi dữ liệu giữa chúng.
Các lệnh pipe, grep và sort là những công cụ được sử dụng nhiều nhất trên máy tính. Linux Dòng lệnh, bởi vì chúng cho phép bạn kết nối các lệnh nhỏ thành một quy trình làm việc mạnh mẽ. Trang này giải thích từng loại với các ví dụ minh họa, sau đó cho thấy cách các bộ lọc liên kết chúng lại với nhau.
Ống trong Linux là gì?
Lệnh pipe trong Linux cho phép bạn sử dụng hai hoặc nhiều lệnh sao cho đầu ra của lệnh này được dùng làm đầu vào cho lệnh tiếp theo. Nói tóm lại, đầu ra của mỗi tiến trình được đưa trực tiếp làm đầu vào cho tiến trình tiếp theo, giống như một đường ống. Ký hiệu '|' biểu thị một đường ống.
Các đường ống giúp bạn kết hợp hai hoặc nhiều lệnh cùng lúc và chạy chúng liên tiếp. Bạn có thể sử dụng các lệnh mạnh mẽ để thực hiện các tác vụ phức tạp một cách nhanh chóng.
Hãy để chúng tôi hiểu điều này với một ví dụ.
Khi bạn sử dụng lệnh 'cat' để xem một tệp tin trải dài nhiều trang, dấu nhắc lệnh sẽ nhanh chóng nhảy đến trang cuối cùng của tệp tin và bạn sẽ không thấy nội dung ở giữa.
Để tránh điều này, bạn có thể chuyển hướng đầu ra của lệnh 'cat' đến lệnh 'less', lệnh này chỉ hiển thị cho bạn một độ dài cuộn nội dung tại một thời điểm.
cat filename | less
Một hình minh họa sẽ làm rõ điều này. Sơ đồ bên dưới cho thấy cách một đường ống truyền đầu ra của lệnh này sang lệnh tiếp theo.
Lệnh 'pg' và 'thêm'
Thay vì dùng lệnh 'less', bạn cũng có thể dùng lệnh 'pg' hoặc 'more':
cat Filename | pg
or
cat Filename | more
Sau đó, bạn có thể xem nội dung tệp theo từng phần nhỏ và cuộn xuống bằng cách nhấn phím Enter. Ảnh chụp màn hình bên dưới hiển thị một tệp được chia trang bằng lệnh "more".
Lệnh 'grep'
Giả sử bạn muốn tìm kiếm thông tin cụ thể, chẳng hạn như mã bưu chính, trong một tệp văn bản.
Bạn có thể tự mình đọc lướt nội dung. tracthông tin đó. Một lựa chọn tốt hơn là sử dụng... grep Lệnh này quét tài liệu để tìm thông tin cần thiết và hiển thị kết quả theo định dạng bạn muốn.
Cú pháp:
grep search_string
Hãy cùng xem nó hoạt động như thế nào. Ảnh chụp màn hình bên dưới hiển thị kết quả tìm kiếm.
Ở đây, lệnh grep đã tìm kiếm trong tệp 'sample' các chuỗi 'Apple' và 'Eat'. Các tùy chọn sau có thể được sử dụng với lệnh này.
| Tùy chọn | Chức năng |
|---|---|
| -v | Hiển thị tất cả các dòng không khớp với chuỗi tìm kiếm |
| -c | Chỉ hiển thị số lượng dòng phù hợp |
| -n | Hiển thị dòng phù hợp và số của nó |
| -i | Phù hợp với cả chữ hoa và chữ thường |
| -l | Chỉ hiển thị tên của tệp bằng chuỗi |
Hãy thử tùy chọn '-i' trên cùng tệp đã sử dụng ở trên. Ảnh chụp màn hình bên dưới hiển thị kết quả không phân biệt chữ hoa chữ thường.
Sử dụng tùy chọn '-i', lệnh grep đã lọc chuỗi 'a' (không phân biệt chữ hoa chữ thường) khỏi tất cả các dòng.
Lệnh 'sắp xếp'
Lệnh này giúp sắp xếp nội dung của một tập tin theo thứ tự bảng chữ cái.
Cú pháp cho lệnh này là:
sort Filename
Hãy xem nội dung của một tập tin, được hiển thị bằng lệnh `cat` bên dưới.
Việc chạy lệnh sort sẽ sắp xếp các dòng đó theo thứ tự bảng chữ cái, như hình bên dưới.
Ngoài ra còn có các phần mở rộng cho lệnh này, và chúng được liệt kê bên dưới.
| Tùy chọn | Chức năng |
|---|---|
| -r | Reversesắp xếp s |
| -n | Sắp xếp theo số |
| -f | Sắp xếp không phân biệt chữ hoa chữ thường |
Ví dụ bên dưới hiển thị cách sắp xếp ngược lại nội dung trong tệp 'abc'.
Bộ lọc là gì?
Linux có rất nhiều lệnh lọc như awk, grep, sed, spell và wc. Một bộ lọc nhận đầu vào từ một lệnh, thực hiện một số xử lý và trả về đầu ra.
Khi bạn kết nối hai lệnh với nhau bằng đường ống, đầu ra đã được "lọc" của lệnh đầu tiên sẽ được chuyển đến lệnh tiếp theo. Sơ đồ bên dưới minh họa cách bộ lọc được tích hợp vào đường ống xử lý dữ liệu.
Chúng ta hãy cùng hiểu điều này thông qua một ví dụ. Chúng ta có tập tin 'sample' như được hiển thị bằng lệnh cat bên dưới.
Chúng ta muốn chỉ tô sáng những dòng không chứa ký tự 'a', nhưng kết quả phải được đảo ngược thứ tự. Để làm điều này, có thể sử dụng cú pháp sau:
cat sample | grep -v a | sort -r
Hãy cùng xem kết quả, được hiển thị trong ảnh chụp màn hình bên dưới.








.png)
.png)

