Existe algum comando que me permita copiar a última linha da saída anterior para minha área de transferência? [duplicado]

3

Não tenho certeza se isso deve estar aqui ou mais no AskDifferent, mas estou usando um shell bash (iTerm) no MacOS. Às vezes, tenho comandos que produzem comandos adicionais que precisam ser copiados / colados no terminal.

Um exemplo disso é entrar no ecr aws:

aws ecr get-login --no-include-email --region -eu-west-1

Isso produz um hash de login de várias linhas que você precisa copiar e colar no shell para autenticar com êxito. Existe uma maneira que eu posso isso e colá-lo a partir do teclado ou algum comando?

Eu já vi várias maneiras de copiar toda a saída de um comando para a área de transferência, mas não é exatamente isso que estou pedindo. Especificamente, normalmente só quero a última linha na saída.

Se nada existir, eu ficaria perfeitamente feliz em apenas configurar algum tipo de alias no meu .bashrc

A resposta recomendada do dupe espera que você use screen - não quero usar screen

    
por MrDuk 11.10.2017 / 18:23

1 resposta

2

Tudo o que você enviar para stdin de xclip será armazenado na área de transferência (se você estiver executando X). Você pode usar tail para extrair a última linha de saída:

for i in {1..10} ; do
    echo $i
done \
| tail -n1 | xclip

10 está agora na área de transferência.

Opa, não notei a tag osx . No OS X, um comando semelhante parece ser pbcopy .

    
por 11.10.2017 / 18:31