Câu trả lời:
Đã có một lệnh cho việc này:
seq 100 104
sẽ in những con số này trên các dòng riêng biệt:
100
101
102
103
104
Vì vậy, chỉ cần hướng đầu ra này vào một tập tin:
seq 100 104 > my_file.txt
và seq 100 2 104
sẽ in trong từng bước của hai, cụ thể là: 100
, 102
,104
seq
là từ GNU Coreutils, không phải Unix. GNU thậm chí là viết tắt của GNU không phải là Unix!
Linux xuất xưởng với seq
lệnh thực hiện chính xác điều đó. Nếu bạn không có seq
lệnh, đây là một lệnh dễ dàng:
i=100; while [ $i -le 104 ]; do echo $i; i=$((i+1)); done >b.txt
hoặc trong ksh / bash / zsh
for ((i=100; i<=104; i++)); do echo $i; done >b.txt
hoặc trong zsh
print -l {100..104} >b.txt
$i
.
bash
printf '%s\n' {100..105}
perl:
perl -le 'print for 100..104'
bc:
echo 'for (i = 100 ; i <= 104 ; ++i) i' | bc
đc:
echo '100 104 sb [p 1 + d lb !<m] sm lm x' | dc
Nếu bạn không ngại một không gian phía trước hầu hết chúng:
echo -e {100..104}\\n >numbers-file.txt
Không có không gian nhưng có thêm lệnh:
echo {100..104} | sed 's/ /\n/g' >numbers-file.txt
Chỉnh sửa cho lệnh vim tiền thưởng (mở vim):
i100[esc]qqyyp[ctrl-a]q2@q:w numbers-file.txt
Đối với số lượng nhiều hơn, tăng 2
tương ứng.
printf '%s\n' {100..104}
Ngoài việc sử dụng seq
, while
, for
, printf
, perl
, echo
như trong ví dụ trước, bạn cũng có thể sử dụng Python
python -c "print list(range(100,105))"
Thí dụ:
[user@linux ~]~ python -c "print list(range(100,105))"
[100, 101, 102, 103, 104]
[user@linux ~]~