Grep -m 1 no funciona

Estoy usando el siguiente command para analizar un elemento de formulario desde HTML usando grep . La variable $RESP contiene el resultado de una request curl anterior …

 echo $RESP | grep -m 1 -o -E 'name="id" value="([A-Za-z0-9]+)"' 

Funciona, excepto que obtiene cada instancia de name="id" . Hay más de una instancia del elemento de formulario en la página.

Traté de usar -m 1 en grep para detenerme en la primera coincidencia, pero todavía los devuelve a todos.

¿Estoy haciendo algo mal? Puedo hacer que funcione con:

 echo $RESP | grep -m 1 -o -E 'name="id" value="([A-Za-z0-9]+)"' | head -n 1 | cut -d '"' -f4 

Pero, todavía no puedo entender por qué -m 1 no está funcionando.

Ejemplo de input …

 <html> ... <input type="hidden" name="id" value="4234235325"> ... ... <input type="hidden" name="id" value="4234235325"> ... ... <input type="hidden" name="id" value="4234235325"> </html> 

Rendimiento esperado:

 ID: 4234235325 

Como ya se mencionó, el elemento de formulario se repite varias veces en todo el HTML. Ya sea que se trate de encoding deficiente o de optimization, no sé. Pero el server no está controlado por mí.

Related of "Grep -m 1 no funciona"

Al omitir las importantísimas comillas en torno a la expansión de la variable RESP, le dijo al shell que desglosara los datos en espacios en blanco, intente modificar los datos inyectando nombres de files, luego júntelos en una sola línea antes de pasarlo a grep. Es por eso que grep -m1 está dando todas las coincidencias; te está dando las coincidencias para la primera línea coincidente, que pasa a ser todas ellas, ya que es solo una línea.

 $ var=$'hello\nworld'; $ echo $var hello world $ echo "$var" hello world $ echo $var | grep -m1 -o '.o' lo wo $ echo "$var" | grep -m1 -o '.o' lo 

Así que cite la expansión. echo "$RESP" | grep ... echo "$RESP" | grep ... Ver también http://mywiki.wooledge.org/Arguments

Dicho esto, grep , head y cut están lejos de ser las herramientas adecuadas para el trabajo. Use un analizador xml para analizar XML. De lo contrario, corre el riesgo de convocar al pony