Saya memiliki file bernama file.88_0.pdb
, file.88_1.pdb
, ...
, file.88_100.pdb
. Saya ingin cat
mereka agar file.88_1.pdb
disisipkan setelah file.88_0.pdb
, file.88_2.pdb
setelah file.88_1.pdb
, dan seterusnya. Jika saya melakukannya cat file.88_*.pdb > all.pdb
, file-file tersebut disatukan dalam urutan berikut:, 0 1 10 11 12 13 14 15 16 17 18 19 2 20...
dll. Bagaimana cara menyatukannya sehingga urutannya 0 1 2 3 4 5 6...
?
files
cat
text-formatting
sodiumnitrate
sumber
sumber
Jawaban:
Menggunakan
brace expansion
Untuk mengabaikan pencetakan pesan kesalahan untuk file yang tidak ada gunakan:
Dalam
zsh
shell juga Anda memiliki(n)
kualifikasi globbing untuk meminta penyortiran numerik (sebagai lawan dari standar alfabet ) untuk glob:sumber
atau, mengenai komentar Jesse_b:
sumber
Dalam shell tanpa ekspansi brace, Anda dapat menggunakan
ls
+xargs
:Ini akan mengurutkan file dalam urutan angka:
-v
semacam alami nomor (versi) dalam teks.sumber
Mencoba:
Ini bisa
sort
digunakan oleh pemisah pada-k2
bidang kedua ( )_
sebagai pemisah. Di sini Anda harus menggunakan>>
jika tidak setiap file baru akan menimpa yang terakhir.sumber
0 1 10 11 12...
sort --version
apa yang Anda dapatkan? Dan Anda memiliki-n
perintah semacam itu, kan?sort (GNU coreutils) 5.93
/dev/null
Selain jawaban lain yang sangat dibutuhkan!find ... | sort ... | xargs cat >> $output
sebagai gantinya.