digite seu comando (exemplo: ls -l) então o comando head com um pipe da seguinte forma:
ls -l | cabeça -1
Estou executando um comando de localização que está retornando vários resultados, mas só preciso do primeiro resultado. Um pouco de googling me levou ao comando "read", mas não consegui descobrir, e a man page não foi muito útil.
Você pode usar o comando more para controlar a quantidade de texto exibida por vez.
Para resolver seu problema:
Redirecione sua saída para um arquivo criado por você.
Use For Loop com 1 ciclo (contador = 1, -1 de cada vez). Você precisa usar tokens para a função de pesquisa.
O loop For ECHO o primeiro comando.
Exclua seu arquivo.
Armazene o eco do FOR Loop em uma variável (opcional).
Eu posso dar algumas definições de uso se você precisar.
Como usar read
$ echo -e "1\n2\n3\n4\n5" 1 2 3 4 5 $ echo -e "1\n2\n3\n4\n5" | while read n; do echo "n:$n" ; done n:1 n:2 n:3 n:4 n:5 $
Mais informações sobre como o bash funciona está disponível em www.tldp.org em Advanced Bash-Scripting Guide
,
Há mais um guia sobre o bash Bash Guide for Beginners
.
Eu gosto de muitas maneiras de resolver problemas unix. Aqui estão alguns outros, assumindo que command
é substituído por qualquer coisa que você esteja fazendo:
command | awk 'NR == 1 {print}'
command | sed -e 1q
TMP='mktemp tempXXX'; command > ${TMP} ; ed ${TMP} << HERE
1p
HERE
command | split -1 - ; cat xaa ; rm -f x[a-z][a-z]
LINECOUNT=$(command | tee tempfile | wc -l | sed -e 's/ *//g'); \
tail -$((${LINECOUNT} - 1)) tempfile | diff -u - tempfile | grep '^+' | \
grep -v '^+++' | sed -e 's/^+//'
Se a sua saída for registros de comprimento fixo (o que pode ser verdade; por exemplo, 80 caracteres de entrada mais uma nova linha de terminal):
command | dd ibs=81 count=1
Em um ponto, trabalhei na instalação de sistemas Unix a partir de dispositivos de armazenamento com capacidade restrita (disquetes). Muitas vezes precisávamos encontrar maneiras imaginativas de usar o conjunto limitado de comandos que poderíamos incluir em um disquete de 1,44 MB:)