Provo a cercare le righe che iniziano con "1" utilizzando
ls -1 | grep ^1*
ma restituisce righe che non iniziano con 1. Cosa mi manca qui?
Provo a cercare le righe che iniziano con "1" utilizzando
ls -1 | grep ^1*
ma restituisce righe che non iniziano con 1. Cosa mi manca qui?
Risposte:
Anche se questo non risponde alla tua domanda, questa è una soluzione migliore a quello che sembra essere il tuo obiettivo:
ls -ld 1*
È possibile utilizzare un shell glob per elencare tutti i file che iniziano con 1
. Si noti che *
ha un significato diverso nel globbing della shell rispetto alle espressioni regolari.
*
è un carattere jolly che significa "0 o più di qualsiasi carattere". Il significato di regex è spiegato nella risposta di otokan.
^ 1. * corrisponde all'intera riga, o proprio come detto sopra, ^ 1 ha ottenuto la stringa contenuta nella riga.
stili diversi di regex usano simboli diversi che rappresentano i caratteri, alcune opzioni specificano lo stile che desideri. e diverse opzioni specificano se si desidera abbinare l'intera riga, o solo parte di essa, o l'intero input come una stringa.
ls
output, si verificheranno problemi se i nomi dei file contengono caratteri strani, come le nuove righe ... Molti altri comandi (in qualche modo nols
, almeno non la versione che devo controllare) avere un'opzione per fornire un output separato nullo, che può quindi essere elaborato in modo sicurogrep -z