GNU/Linux >> Linux Esercitazione >  >> Linux

Grep per una riga contenente solo 5 o 6 numeri?

Come faresti a grep per una riga contenente solo 5 o 6 numeri? Qualcosa del genere.

caso 1 (ha uno spazio iniziale)

           10      2       12      1       13

caso 2 (nessuno spazio iniziale)

   1       2       3       4       5        6

Pensavo che una cosa del genere avrebbe funzionato.

grep -E '[0-9]{5}'

Risposta accettata:

grep -E '[0-9]{5}' sta cercando numeri con almeno 5 cifre. Quello che ti serve sono 5 numeri con almeno una cifra:

grep -E '[0-9]+([^0-9]+[0-9]+){4}'
  • [0-9]+ – un numero di almeno una cifra
  • [^0-9]+[0-9]+ – un numero con almeno una cifra, preceduto da almeno un carattere diverso da una cifra. Quindi lo ripetiamo 4 volte per ottenere 5 numeri separati da non cifre.
  • Se il requisito è esattamente 5, potresti voler circondare questa espressione regolare con [^0-9] in modo che l'intera linea sia abbinata (con gli ancoraggi, ovviamente).
  • A seconda di cosa vuoi qui (1,2,3,4,6 qualificato?), potresti guardare altri separatori. Ad esempio, un numero reale di notazione scientifica corretta sarebbe simile a:[+-]?(([0-9]+(.[0-9]+)?)|([0-9]?.[0-9]+))([eE][+-][0-9]+)? Quindi i separatori potrebbero non includere . , e , ecc. Possono essere solo spazi bianchi, come mikeserv Appunti. O forse le virgole, se si tratta di un record CSV. Oppure, a seconda delle impostazioni locali, una virgola sarebbe il separatore decimale. Varia [^0-9] secondo la tua esigenza.

Linux
  1. Come si cercano file contenenti terminazioni di riga DOS (CRLF) con grep su Linux?

  2. Aggiunta di una riga a un file solo se non esiste già

  3. Regex (grep) per la ricerca su più righe necessaria

  4. Cronologia di Bash senza numeri di riga

  5. Come fare in modo che GREP selezioni solo valori numerici?

3 gestori di password per la riga di comando di Linux

Come mostrare i numeri di riga in Vim / Vi

Come mostrare i numeri di riga in vi/vim?

Come mostrare i numeri di riga in Gedit

grep senza mostrare percorso/file:riga

Grep:conta il numero di corrispondenze per riga