Usa awk. cat myfile | awk '{print $1}' | grep query
Si puedes usa awk
, prueba esto:
text.txt
--------
Product Cost
Abc....def 10
Abc.def 20
ajsk,,lll 04
With only awk:
awk '$1 ~ /^Abc.*def$/ { SUM += $2 } END { print SUM } ' test.txt
Result: 30
With grep and awk:
grep "^Abc.*def.*\d*$" test.txt | awk '{SUM += $2} END {print SUM}'
Result: 30
Explicación:
awk
lee cada línea y hace coincidir la primera columna con una expresión regular (regex)- La primera columna debe comenzar con Abc, seguida de cualquier cosa (cero o más veces) y termina con def
- Si se encuentra tal coincidencia, agregue la segunda columna a la variable SUM
- Después de leer todas las líneas, imprima la variable
Grep extrae cada línea que comienza con Abc, seguido de cualquier cosa, seguido de def, seguido de cualquier cosa, seguido de un número (cero o más veces) hasta el final. Esas líneas se alimentan/canalizan a awk. Awk solo incrementa SUM por cada línea que recibe. Después de leer todas las líneas recibidas, imprime la variable SUM.