Obtener la primera palabra de la cadena con sed

¿Cómo puedo cortar con sed la siguiente propiedad tiene sólo MAC?

MAC evbyminsd58df

Me hizo esto, pero funciona en el otro lado:

sed -e 's/^.\{1\}//'

3 Kommentare

  1. 14

    Acaba de quitar todo, desde el espacio:

    $ echo "MAC evbyminsd58df" | sed 's/.*//'
    MAC

    Como usted menciona corte, puede utilizar cut seleccionar el primer campo basado en el espacio como separador:

    $ echo "MAC evbyminsd58df" | cut -d" " -f1
    MAC

    Con puro Bash, cualquiera de estos:

    $ read a _ <<< "MAC evbyminsd58df"
    $ echo "$a"
    MAC
    
    $ echo "MAC evbyminsd58df" | { read a _; echo "$a"; }
    MAC
    • Gracias. funciona bien
    • man read no muestra ninguna mención de _ que utilizó en read a _ <<< "MAC evbyminsd58df". ¿Cómo te enteraste de esto ? Donde puedo ver la explicación de _ utilizado en read comando ?
    • es cualquier nombre. Tendemos a utilizar este nombre para mostrar que es un bote variable que no va a ser utilizada. Mismo que decir read a b <<< "MAC evbyminsd58df"
    • ¿Por qué he incluso la búsqueda de este. Usted está tan a la derecha, y yo siento que no soy. Gracias.
  2. 4

    con cut (el espacio como delimitador, seleccione el primer campo):

    echo "MAC evbyminsd58df" | cut -d " " -f 1

    con awk (seleccione imprimir en el primer campo, el espacio es el delimitador predeterminado):

    echo "MAC evbyminsd58df" | awk '{print $1}' 
  3. 2

    Usar grep, como el de abajo,

    grep -o '^[^ ]\+' file

    O

    grep -o '^[^[:space:]]\+' file

    ^ Afirma que estamos en el comienzo. [^[:space:]] Negado POSIX clase de caracteres que coincide con cualquier carácter, pero no de un espacio , cero o más veces.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea