Copia la primera palabra del nombre del archivo.

Copia la primera palabra del nombre del archivo.
 zBase=$(basename "{query}")
title=${zBase%.*}
echo -n $title;

El comando anterior copia el nombre del archivo en el portapapeles (usando Alfred: la parte {query} es de Alfred). Ahora quiero copiar sólo la primera palabra del nombre del archivo. ¿Cómo puedo modificarlo?

Aquí hay un nombre de archivo de ejemplo:

John 2015 Estructura nominal y verbal.pdf

El elogio anterior me da [John 2015 Estructura verbal y sustantivo] en mi portapapeles. Ahora solo quiero obtenerJohnen mi portapapeles.

Respuesta1

title=$(echo $title | cut -d" " -f1)

Añade esto antes del eco. Corta el nombre en cada espacio y toma la primera parte -> Lo que querías hacer

Respuesta2

En lugar de usar herramientas externas como sed, cuto awk, simplemente puede usar la expansión variable incorporada del shell que ya usó para eliminar la extensión:

echo -n ${title%% *}

Usar doble %%significa eliminar la coincidencia más larga, por lo que elimina todo de la variable comenzando con el primer espacio en blanco.

Respuesta3

Aquí tienes, title=$(echo $zBase|awk {'print $1'})

En awk $1 da la primera palabra, $2 la segunda palabra y así sucesivamente.

Respuesta4

Siempre puedes confiar en cualquier herramienta de procesamiento de texto para hacer el trabajo. Digamos sedpor ejemplo:

$ sed -r 's/^([[:alpha:]]*).*/\1/' <<< "John 2015 Noun and verb structure.pdf"
John

información relacionada