Nếu bạn đã từng chơi bài, bạn có thể biết đến thuật ngữ xáo trộn. Có một chút khó hình dung, có một công cụ dòng lệnh Linux thực hiện chính xác điều đó với các dòng trong tệp. Trong hướng dẫn này, chúng ta sẽ thảo luận về những điều cơ bản của lệnh 'shuf' bằng một số ví dụ dễ hiểu.
Nhưng trước khi làm điều đó, cần đề cập rằng tất cả các ví dụ ở đây đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Và đây là cách trang hướng dẫn của công cụ giải thích lệnh này:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh shuf hoạt động.
Bây giờ, tệp test.txt chứa các dòng sau:
Nhưng lệnh shuf ở trên tạo ra đầu ra sau:
Vì vậy, bạn có thể thấy các dòng đã bị xáo trộn.
Ví dụ:
Lệnh trên tạo ra đầu ra sau:
Vì vậy, nếu bạn muốn shuf tạo ra 25 dòng ở đầu ra, hãy chạy lệnh sau:
Đây là đầu ra mà lệnh này tạo ra:
Sau đây là đầu ra được tạo ra bởi lệnh này:
Nhưng trước khi làm điều đó, cần đề cập rằng tất cả các ví dụ ở đây đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Lệnh shuf Linux
Lệnh shuf trong Linux cho phép bạn tạo các hoán vị ngẫu nhiên. Sau đây là cú pháp của lệnh:
Mã:
shuf [OPTION]... [FILE]
Mã:
Viết một hoán vị ngẫu nhiên các dòng đầu vào thành đầu ra chuẩn.
Câu hỏi 1. Làm thế nào để sử dụng lệnh shuf?
Cách sử dụng cơ bản rất đơn giản. Chỉ cần truyền tên tệp làm đầu vào. Sau đây là một ví dụ:
Mã:
shuf test.txt
Mã:
1
2
3
4
5
6
7
8
9
Mã:
3
4
6
5
1
8
2
7
9
Q2. Làm thế nào để giới hạn số dòng trong đầu ra?
Nếu bạn muốn giới hạn số dòng trong đầu ra shuf, hãy sử dụng tùy chọn dòng lệnh -n, yêu cầu bạn phải truyền một số biểu thị số lượng dòng tối đa bạn muốn đưa vào đầu ra.Ví dụ:
Mã:
shuf -n 3 test.txt
Mã:
6
4
9
Câu hỏi 3. Làm thế nào để cho phép lặp lại các dòng trong đầu ra?
Giả sử tệp đầu vào chứa 9 dòng, nhưng bạn muốn shuf tạo ra nhiều dòng hơn trong đầu ra (sử dụng tùy chọn -n đã thảo luận ở trên). Bạn có thể thực hiện việc này bằng tùy chọn -r.
Mã:
-r, --repeat
các dòng đầu ra có thể được lặp lại
Mã:
shuf -r -n 25 test.txt
Mã:
6
8
4
5
9
3
3
1
2
5
7
5
9
5
8
5
2
8
8
7
4
4
8
5
3
Câu 4. Làm thế nào để shuf xử lý các đối số đầu vào như các dòng?
Để làm được điều này, hãy sử dụng tùy chọn dòng lệnh -e. Sau đây là một ví dụ:
Mã:
shuf -e 1 2 3 4 5 6 7 8 9
Mã:
9
1
7
8
6
2
3
5
4