¿Alguien puede explicar en detalle los siguientes dos comandos de expresiones regulares?

¿Alguien puede explicar en detalle los siguientes dos comandos de expresiones regulares?

Los dos comandos siguientes se utilizan para contar números enteros distintos de cero de la segunda columna del archivo de texto. ¿Alguien puede explicar la expresión regular en detalle?

grep -c '^[^,]*,[^0][^,]*,' < myfile.txt
sed '/^[^,]*,0,.*/d' < myfile.txt | sed -n '$='

Respuesta1

La primera expresión regular busca cualquier línea que contenga lo siguiente:

'^        - start of line, followed by
 [^,]*    - 0 or more non-comma characters, followed by
 ,        - a comma, followed by
 [^0]     - any single character other than a zero, followed by
 [^,]*    - 0 or more non-comma characters, followed by
 ,'       - a comma

grep -c cuenta el número de líneas coincidentes

La segunda expresión regular coincide

'/        (the start of the regex)
 ^        - start of line, followed by
 [^,]*    - 0 or more non-comma characters, followed by
 ,0,      - a comma then a zero then a comma, followed by
 .*       - 0 or more other characters
 /d'      (the end of the regex -- delete the lines matching the preceding expression)

información relacionada