Di recente mi sono imbattuto nei seguenti due esempi
Esempio 1: elenca solo le directory
ls -l | grep "^d"
Esempio 2: ricerca all'interno dei file
ls | xargs grep -i "Find Some String"
Ora ho letto da qui che
Se si utilizza semplicemente una pipe, riceve i dati su STDIN (il flusso di input standard) come una pila di dati grezzi che può ordinare su una riga alla volta.
Quindi ora sono un po 'confuso sul perché grep richiede xargs nel secondo e non nel primo. Da quello che ho capito finora è che xargs viene utilizzato per la conversione stdin
in arguments
. (Poiché alcuni programmi richiedono argomenti anziché stdin). Questo significa che grep può accettare sia lo stdin che gli argomenti? Gradirei se qualcuno potesse spiegare perché nel secondo esempio viene utilizzato xargs perché non può funzionare senza xargs? A che serve?