Il comando:
wc -l file.txt
genererà un output simile:
42 file.txt
con wc
utilmente che indica il nome del file pure. Lo fa nel caso in cui si sta controllando un sacco di file in una sola volta e vogliono individuale così come le statistiche totali:
pax> wc -l *.txt
973 list_of_people_i_must_kill_if_i_find_out_i_have_cancer.txt
2 major_acheivements_of_my_life.txt
975 total
si può fermare wc
dal fare questo fornendo i suoi dati sul standard input, in modo che doesn 't conosce il nome del file:
if [[ $(wc -l <file.txt) -ge 2 ]]
la seguente trascrizione mostra in azione:
pax> wc -l qq.c
26 qq.c
pax> wc -l <qq.c
26
Come nota a parte, noterai che sono passato a utilizzare [[ ]]
e $()
.
Preferisco il primo perché ha meno problemi a causa della compatibilità con le versioni precedenti (principalmente con la suddivisione di stringhe) e il secondo perché è molto più facile nidificare eseguibili.
+1 La risposta più semplice. – chepner
@paxdiablo Sei corretto. Grazie. Si potrebbe discutere se due linee in cui il primo termina in una barra rovesciata dovrebbero essere considerate come una riga, poiché ciò dovrebbe essere definito dall'applicazione. Ma dal momento che 'wc -l' ignora il backslash dovrebbe essere ignorato anche qui. – Scrutinizer