Tin tức và phân tích của tất cả các thiết bị di động

Cách sử dụng lệnh seq trong linux

Lệnh seq trong Linux tạo danh sách các số ngay lập tức. Nhưng làm thế nào chức năng này có thể được sử dụng trong thực tế? Chúng tôi sẽ chỉ cho bạn cách seq có thể hữu ích cho bạn.

lệnh seq

Thoạt nhìn, lệnh seq trong Linux có vẻ gì đó kỳ lạ. Nó cho phép bạn tạo ra các tập tin chuỗi số một cách nhanh chóng và thế là xong! Tuy nhiên, từ khóa là “nhanh”. Bạn sắp thấy lệnh nhỏ này có thể chạy nhanh như thế nào.

Tuy nhiên, bất kể chúng được tạo ra như thế nào, danh sách các số hữu ích như thế nào? Lệnh seq đã được thêm vào 8. bản Unix năm 1985. Anh ấy đã ở đó kể từ đó, vì vậy anh ấy phải làm điều gì đó đáng giá.

Triết lý của Unix là nó có đầy đủ các tiện ích nhỏ làm một việc và làm tốt việc đó. Một trong những nguyên lý chính của triết lý này là viết các chương trình lấy đầu vào từ các chương trình khác. Tất nhiên, điều này cũng có nghĩa là các chương trình này phải tạo ra đầu ra có thể được sử dụng làm đầu vào cho các chương trình khác.

Lệnh seq tự hoạt động khi được sử dụng với các lệnh khác tiêu thụ đầu ra của nó, thông qua đường ống dẫn hoặc mở rộng dòng lệnh.

Tạo một danh sách cơ bản

Nếu bạn chạy seq với một số duy nhất làm tham số dòng lệnh, nó sẽ đếm từ một đến số đó. Sau đó, nó in các số vào cửa sổ đầu cuối, mỗi số một dòng, như hình bên dưới:

seq 6

Nếu bạn nhập hai số trên dòng lệnh, số đầu tiên sẽ là số bắt đầu và số thứ hai sẽ là số kết thúc, như minh họa bên dưới:

seq 4 10

tiếp theo 4 10 trong cửa sổ đầu cuối.

Bạn có thể đặt kích thước bước bằng cách bao gồm số thứ ba. Nó nằm giữa số đầu và số cuối. Chúng tôi nhập lệnh sau để yêu cầu seq tạo danh sách các số bắt đầu bằng sáu, kết thúc bằng 48 và sử dụng bước sáu:

seq 6 6 48

tiếp theo 6 6  48 trong cửa sổ đầu cuối.

đếm ngược

Chúng tôi cũng có thể yêu cầu seq tạo danh sách các số từ lớn nhất đến thấp nhất. Tuy nhiên, để làm được điều đó, chúng ta cần chỉ định một bước là âm.

Lệnh sau tạo danh sách từ 24 đến 12 theo các bước sau 6bởi vì chúng tôi nhập bước dưới dạng số âm:

seq 24 -6 12

thắt nút.  24-6 12 trong một cửa sổ đầu cuối.

Đếm với số thập phân

Số bắt đầu, kết thúc và số bước cũng có thể là số thập phân. Nếu bất kỳ số nào là số thập phân, thì những số khác cũng được coi là số thập phân. Lệnh sau tạo danh sách các số có một bước 0,2:

seq 1 0.2 2

tiếp theo 1 0,2 2  trong cửa sổ đầu cuối.

tốc độ tiếp theo

seq cực kỳ nhanh – nút cổ chai duy nhất là thời gian cần thiết để nhập lệnh trong cửa sổ đầu cuối. Để kiểm tra tốc độ của nó, hãy yêu cầu danh sách 250.000 số.

Chúng tôi nhập thông tin sau bằng cách sử dụng lệnh thời gian để xem quá trình này mất bao lâu:

time seq 250000

thứ tự thời gian 250000 trong cửa sổ đầu cuối.

Kết quả được hiển thị bên dưới danh sách. Ngay cả trên máy thử nghiệm mạnh vừa phải của chúng tôi, seq vẫn nhanh một cách đáng ngạc nhiên.

Kết quả thời gian cho lệnh seq 250000 trong cửa sổ đầu cuối.

Toàn bộ danh sách đã được tạo và lưu vào màn hình trong khoảng 1/ /3 giây. Nếu chúng tôi chuyển hướng danh sách tới một tệp, chúng tôi thậm chí có thể tránh được chi phí nhập trong cửa sổ đầu cuối.

Để làm điều này, chúng tôi nhập:

time seq 250000 > numbers.txt

time seq 250000><noscript><img decoding=Sử dụng dấu tách

Ký tự xuống dòng là ký tự mặc định được hiển thị giữa mỗi số trong danh sách. Do đó, chúng xuất hiện dưới dạng danh sách dọc, với mỗi số nằm trên một dòng riêng biệt. Bạn có thể chỉ định một dấu phân cách khác nếu cần.

Ví dụ: giả sử bạn muốn tạo danh sách được phân tách bằng dấu phẩy, danh sách được phân tách bằng dấu hai chấm hoặc bất kỳ dấu câu hoặc ký hiệu nào khác. Dấu phân cách thực sự là một chuỗi, vì vậy bạn có thể sử dụng nhiều hơn một ký tự.

Chúng tôi sẽ sử dụng tùy chọn -s (dấu phân cách). Lệnh sau sẽ tạo một danh sách được phân tách bằng dấu phẩy:

seq s, 6 6 36

Lệnh này sẽ sử dụng dấu hai chấm (:) làm dấu phân cách:

seq -s: 6 6 36

Lệnh này yêu cầu seq sử dụng hai dấu gạch ngang (-) làm dấu phân cách:

seq -s-- 6 6 36

tiếp theo, 6 6  36 trong cửa sổ đầu cuối.

Sử dụng chuỗi định dạng

Lệnh seq cũng hỗ trợ chuỗi định dạng kiểu C. Chúng cho phép bạn định dạng đầu ra với nhiều quyền kiểm soát hơn là chỉ xác định dấu phân cách. Để sử dụng một chuỗi định dạng, hãy sử dụng tùy chọn -f (định dạng).

Lệnh sau yêu cầu seq sử dụng số không để đệm đầu ra thành hai ký tự:

seq -f "%02g" 6

thứ tự -f

Chúng ta có thể định dạng chuỗi với bất kỳ văn bản nào và đặt số ở bất kỳ đâu trong chuỗi như sau:

seq -f "Number %02g in a C-like format string" 6

thứ tự -f

Cách nhanh chóng để đặt không điền

Cách nhanh nhất để đặt phần đệm bằng 0 là sử dụng tùy chọn -w (chiều rộng bằng nhau). Điều này yêu cầu seq sử dụng các số 0 để điền vào các số, vì vậy tất cả chúng đều có cùng chiều rộng với số lớn nhất.

Lệnh sau được tính từ 0 đến 1000 trong các bước 100 và tất cả các số sẽ được đệm bằng số 0:

seq -w 0 100 1000

tiếp theo -w 0 100 1000 trong cửa sổ đầu cuối.

Số dài nhất có bốn ký tự, vì vậy tất cả các số hẹp hơn được đệm bằng số 0 cho đến chiều rộng đó (thậm chí 0 được thêm vào bốn số không).

Trình tự đường ống Đến bc

Bằng cách đặt dấu phân cách làm ký hiệu toán học và chuyển danh sách tới lệnh bc, chúng ta có thể đánh giá các số trong danh sách đó.

Lệnh sau tạo danh sách các số được phân tách bằng dấu hoa thị

seq -s* 6

bắt đầu bằng một và kết thúc bằng sáu:

seq -s* 6 | bc

Nếu chúng ta nhập danh sách này vào bc, nó sẽ đánh giá danh sách bằng các ngôi sao

seq -s+ 5

dưới dạng các ký hiệu nhân:

seq -s+ 5 | bc

Chúng ta cũng có thể làm điều này với các biểu tượng khác.  Lệnh sau sử dụng dấu cộng (+) để tạo danh sách mà tất cả các số được thêm vào:

Chúng tôi nhập lệnh sau để gửi lệnh này tới bc và đánh giá danh sách:

thứ tự -s * 6 trong cửa sổ đầu cuối. Tạo tệp bằng chuỗi Touch Command

cập nhật tem thời gian và ngày tháng

touch $(seq -f "file-%g.txt" 1 10)

trên các tập tin. Nếu tệp không tồn tại, hãy nhấn vào tệp đó để tạo. Chúng ta có thể sử dụng tính năng mở rộng dòng lệnh cảm ứng và trình tự để tạo một tập hợp các tệp có tên chủ đề nhưng khác số.

ls file*

Chúng tôi sẽ tạo một bộ gồm 10 tệp có cùng tên cơ sở và số khác nhau (tệp-1.txt, tập tin-2.txt, v.v.).  Chúng tôi nhập:

Sau đó, chúng tôi gõ để kiểm tra các tập tin:

nhấn $(seq -f

Sử dụng seq trong vòng lặp Bash

#!/bin/bash

  for val in $(seq 5 0.2 6.6); do

  echo "The value is now: $val"

done

Chúng ta có thể sử dụng seq trong tập lệnh Bash để kiểm soát các vòng lặp thập phân.

chmod +x loop.sh

Nhập nội dung sau vào trình chỉnh sửa, sau đó lưu dưới dạng

Sau đó, chúng tôi nhập lệnh sau để làm cho tập lệnh mới của chúng tôi có thể thực thi được:

./loop.sh

chmod + x loop.sh trong cửa sổ đầu cuối.

Khi chúng tôi chạy tập lệnh, bộ đếm vòng lặp được hiển thị trong cửa sổ đầu cuối. Sau đó, chúng ta có thể gõ lệnh sau để xem số gia tăng của bộ đếm vòng lặp thập phân với mỗi lần lặp của vòng lặp:

./loop.sh trong cửa sổ đầu cuối.

Lưu ý rằng trình tự cũng có thể đếm ngược; bạn có thể sử dụng điều này trong các vòng lặp theo cùng một cách. Đẹp và đơn giản Một điều về seq là không có nhiều đường cong học tập. Nó có

mới mẻ ngắn

man, nhưng bạn vẫn có thể sử dụng nó theo những cách thú vị.

Vì chúng tôi thường cần nhanh chóng tạo các tệp thử nghiệm có kích thước thực, nên chúng tôi sử dụng seq với một chuỗi định dạng. Sau đó, chúng tôi chuyển hướng đầu ra để tạo một tệp chứa bất kỳ số hàng dữ liệu giả nào.