Extrae una palabra después de una palabra específica en la misma línea

¿Cómo puedo extraer una palabra que viene después de una palabra específica en Linux (csh)? Más precisamente, tengo un archivo que tiene una sola línea que se ve así:

[some useless data] --pe_cnt 100 --rd_cnt 1000 [some more data] 

Quiero extraer el número 100 que está después de la palabra --pe_cnt . No puedo usar sed porque eso solo funciona si quieres extraer una línea completa. Tal vez puedo usar awk?

Además, tengo varios archivos que tienen valores diferentes en lugar de 100 así que necesito algo que extraiga el valor pero que no dependa del valor.

Con awk :

 awk '{for(i=1;i<=NF;i++) if ($i=="--pe_cnt") print $(i+1)}' inputFile 

Básicamente recorra cada palabra de la línea. Cuando encuentre el primero que está buscando, tome la siguiente palabra e imprímala.

Con grep :

 grep -oP "(?<=--pe_cnt )[^ ]+" inputFile 

Puedes usar sed Simplemente haga un grupo de deseos que quiera emparejar y reemplace toda la línea con el grupo:

 sed -n 's/^.*pe_cnt\s\+\([0-9]\+\).*$/\1/p' file 

Si hay un carácter de espacio único entre --pe_cnt y 100 , puede usar las aserciones lookahead y lookbehind

 grep -oP '(?<=--pe_cnt\s)\d+(?=\s+--rd_cnt)'