Saya telah mengulangi angka dalam berbagai urutan. Saya dapat menampilkannya dalam urutan yang meningkat, bahkan dengan langkah-langkah seperti:
$ seq --separator="," 1 10
1,2,3,4,5,6,7,8,9,10
$ seq --separator="," 1 2 10
1,3,5,7,9
Saya juga dapat menampilkannya dalam urutan terbalik, baik secara terus menerus maupun langkah bijak.
$ seq --separator="," 10 1
$ seq --separator="," 10 2 1
Tidak ada output untuk perintah di atas.
Detail shell saya:
$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Biarkan saya tahu bagaimana saya bisa menampilkan angka dalam urutan menurun?
command-line
seq
mtk
sumber
sumber
seq
adalah alat yang sama sekali tidak standar dan tidak ada jaminan bahwa dua implementasi akan sama. Jika Anda perlu menulis lingkaran yang mundur ke belakang angka dalam bash, gunakanfor ((i=$max;i>=0;i--)) …
atau sejenisnya.Jawaban:
gunakan kenaikan negatif
sumber
Secara umum, Anda tidak ingin menggunakan
seq
, itu tidak portabel (bahkan di antara lingkungan Linux standar). Jika Anda menggunakan ksh, zsh, atau bash4 +, Anda dapat menggunakan brace expansion:sumber
seq
tidak standar dan kemudian menggunakan ekspansi brace bash-4-only. ;)seq
tidak.Cara lain dalam bash, ksh, atau zsh murni:
Cara POSIX murni:
sumber
for
Ekspresi kedua harus menjadi ujian dan yang ketiga adalah langkah.Sekarang, yang POSIX standar:
(Menariknya, dengan
mawk
(dan pada tingkat lebih rendah)gawk
juga) jauh lebih cepat daripada GNUseq
untuki = 10000000
bukannyai = 10
)Atau
(hanya akan lebih efisien dengan sejumlah kecil iterasi, terutama dengan
bash
)Atau
(yang akan mendukung angka dengan ukuran berapa pun, tetapi perhatikan bahwa melewati sejumlah digit tertentu (angka lebih besar dari 10 70 di POSIX lokal setidaknya), garis akan dibungkus dengan garis miring terbalik)
sumber
BC_LINE_LENGTH=0
di lingkungan. Tidak ada keberuntungan pada implementasi lain.s=$s,$i
atau memanggilecho -n
/echo \c
/printf
?Anda dapat membalik urutan menggunakan
tac
(cat terbalik). Bahkan jikaseq
harus berperilaku berbeda pada berbagai sistem, saya pikir yang berikut ini harus se portable mungkin:sumber
Coba dengan:
Contoh:
$ seq 10 -1 1
sumber