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.
lsoutput, 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