Copie a primeira palavra do nome do arquivo

Copie a primeira palavra do nome do arquivo
 zBase=$(basename "{query}")
title=${zBase%.*}
echo -n $title;

O comando acima copia o nome do arquivo para a área de transferência (usando Alfred: a parte {query} é de Alfred). Agora, quero copiar apenas a primeira palavra do nome do arquivo. Como posso modificá-lo?

Aqui está um exemplo de nome de arquivo:

John 2015 Substantivo e estrutura verbal.pdf

O elogio acima me dá [John 2015 Substantivo e estrutura verbal] na minha área de transferência. Agora, eu quero obter apenasJohnna minha área de transferência.

Responder1

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

Adicione isso antes do eco. Corta o nome de cada espaço e pega a primeira parte -> O que você queria fazer

Responder2

Em vez de usar ferramentas externas como sed, cutou awk, você pode simplesmente usar a expansão variável integrada do shell que você já usou para remover a extensão:

echo -n ${title%% *}

Usar double %%significa remover a correspondência mais longa, removendo tudo da variável começando com o primeiro espaço em branco.

Responder3

Aqui você vai, title=$(echo $zBase|awk {'print $1'})

No awk $1 dá a primeira palavra, $2 a segunda palavra e assim por diante.

Responder4

Você sempre pode contar com qualquer ferramenta de processamento de texto para fazer o trabalho. Digamos sedpor exemplo:

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

informação relacionada