[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ls y break



El 19/05/12, "Matías A. Bellone" <matiasbellone@gmail.com> escribió:
> On 05/19/2012 01:06 PM, Alfonso Egea Callejas wrote:
>> Hola a todos.
>>
>> Me interesaría que en un script se utilizase el "primer" elemento de
>> una carpeta únicamente para llevar a cabo una acción. Es decir si:
>>
>> $ ls carpeta
>> aa   bb   cc
>>
>> busco una orden que devuelva aa.
>>
>> Buscando con ls --help, man ls y google lo más parecido que he
>> encontrado es romper un ciclo for con break:
>>
>> for i in `ls carpeta`; do
>> echo $i
>> break
>> done
>>
>> pero me parece raro que no haya una opción de ls para listar
>> únicamente el primer elemento... sabéis si la hay?
>>
>
> no que yo sepa, pero podés encadenar comandos y para sacar los elementos
> del tope de una lista, tenés head:
>
> $ ls carpeta | head -n1
> aa

Sí, acabo de encontrarlo también. Usando pipes entre ls y head o tail
puedes obtener "todas" las combinaciones posibles. Ejemplo:

$ ls carpeta | head -2    #muestra los dos primeros
aa
bb

$ ls carpeta | tail -1      #muestra el último
cc

$ ls carpeta | head -2 | tail -1   #muestra el segundo
bb

Lástima no poder acceder a la "posición" deseada directamente con ls
para que quedase más limpio :( pero bueno, todo tiene solución :D

Saludos y muchas gracias Toote!

Alfonso


Reply to: