Cut funciona con eco pero no sin él

Cut funciona con eco pero no sin él

Entonces estoy tratando de extraer una salida similar a

x=($discover nginx --human=nood)

lo que me da una salida como

i-03099 nginx IP pip de fideos b4b966d280546c6b070f5f952c281d3294308048

Además, quiero extraer la columna pip en otra variable. Cuando lo hago

echo "$x" | cut -f6

Obtengo el resultado deseado, pero cuando lo intento.

y= "$x" | cut -f6 

Obtengo una salida en blanco.

¿Puede explicarme por qué sucede esto y cómo puedo obtener el resultado que deseo? Gracias de antemano.

Respuesta1

Además, quiero extraer la columna pip en otra variable. Cuando lo hago

echo "$x" | cut -f6

Obtengo el resultado deseado[...]

Eso es raro, porque esto no debería funcionar, ya que

‘-f FIELD-LIST’
‘--fields=FIELD-LIST’
     Select for printing only the fields listed in FIELD-LIST.  Fields
     are separated by a TAB character by default.  Also print any line
     that contains no delimiter character, unless the ‘--only-delimited’
     (‘-s’) option is specified.

-fdebería funcionar solo cuando los campos están separados por TAB, a menos que -dse establezca lo contrario.

Si desea extraer el campo después de la palabra pip, ese script me funciona

x="i-03099 nginx IP noodlefish pip b4b966d280546c6b070f5f952c281d3294308048"

y=$(echo -n "$x" | cut -d ' ' -f 6 -)

echo "$y"

Respuesta2

Utilice el siguiente comando

y=`echo $x |cut -f6`

información relacionada