Saya memiliki 2000+ file dalam satu folder, tetapi ada beberapa file yang hilang dari folder tersebut.
Seperti nama file
GLDAS_NOAH025SUBP_3H.A2003 001,0000 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 001,0600 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 001,1200 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 001,1800 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 002,0000 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 002,0600 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 002,1200 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 002,1800 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 003,0000 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003003.0600 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 003.1200 .001.2015210044609.pss.grb GLDAS_NOAH025SUBP_3H.A2003 003.1800 .001.2015. 002.044609.pss.grb
001
menunjukkan hari, sedangkan 0000
jam.
Bagaimana cara mengetahui file yang hilang di folder? Saya mendapat beberapa jawaban di google tetapi tidak tahu bagaimana cara mengimplementasikannya.
sumber
Jawaban:
Dengan
zsh
ataubash4
, Anda dapat menggunakan ekspansi brace untuk itu:Perhatikan tanda kurung:
{001..006}
cara memperluas untuk001
,002
...006
{0000,0600,1200,1800}
ke setiap yang di atas0000
, tambahkan0600
,,1200
dan1800
.>/dev/null
adalah untuk menghindari keluaran standarls
-> kita hanya ingin kesalahan standarSekarang jika satu file tidak ada,
ls
akan menunjukkan kesalahan untuk itu:Dengan
ksh93
, ganti{001..006}
dengan{1..6%.3d}
.sumber
{001..365}
, bagi saya itu berhasil{0000..1800..600}
formulirnya..{00,06,12,18}00.
.Variasi pada solusi @chaos (bash 4.0 atau lebih tinggi atau zsh 4.3.11 dan lebih tinggi):
atau
untuk mencetak hanya hari + jam yang hilang
sumber
Walaupun jawaban chaos baik untuk digunakan dalam shell interaktif, jawaban ini dapat digunakan sebagai skrip POSIX, misalnya jika Anda perlu melakukan ini secara berkala dan / atau melakukannya di komputer lain.
(
seq
atau ekspansi penjepit tidak ditentukan oleh POSIX.)sumber
Buat nama file dalam satu lingkaran dan kemudian uji untuk tidak adanya file:
Catatan: Saya tidak menjamin contoh ini bebas dari kesalahan. Ini adalah contoh, bukan skrip yang diketahui bekerja.
Portabilitas: kebutuhan
ksh
,bash
atauzsh
dan sistem denganseq
perintah GNU tersedia.sumber