Ve složce mám více než 2000 souborů, ale ve složce chybí několik souborů.
Názvy souborů jsou jako
GLDAS_NOAH025SUBP_3H.A2003001 0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003001.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003001.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003001.1800 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003002.1800 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.0000 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.0600 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.1200 .001.2015210044609.pss.grb
GLDAS_NOAH025SUBP_3H.A2003003.1800 .001.2015210044609.pss.grb
001
označuje den, zatímco 0000
je hodina.
Jak zjistit, který soubor ve složce chybí? Na Googlu jsem dostal několik odpovědí, ale nemohl jsem přijít na to, jak je implementovat.
Přijatá odpověď:
Pomocí zsh
nebo bash4
, můžete k tomu použít rozšíření závorky:
ls -d GLDAS_NOAH025SUBP_3H.A2003{001..006}.{0000,0600,1200,1800}.001.2015210044609.pss.grb >/dev/null
Všimněte si závorek:
{001..006}
znamená expandovat na001
,002
, …006
{0000,0600,1200,1800}
ke každému z výše uvedených přidejte0000
,0600
,1200
a1800
.>/dev/null
je vyhnout se standardnímu výstupuls
-> chceme pouze standardní chybu
Nyní, pokud jeden soubor není přítomen, ls
zobrazí chybu:
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003004.1800.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003005.1800.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.0000.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.0600.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.1200.001.2015210044609.pss.grb: No such file or directory
ls: cannot access GLDAS_NOAH025SUBP_3H.A2003006.1800.001.2015210044609.pss.grb: No such file or directory
S ksh93
, nahraďte {001..006}
s {1..6%.3d}
.