2012-04-27 7 views
6
tail */filename 

działa, aleJak ogon ostatnią linię wielu plików za pomocą "tail -1 */nazwę"

tail -1 */filename 

nie. Dlaczego to? I czy istnieje 1 linijka do wykonania tego zadania bez pętli?

head -1 */filename 

działa z jakiegoś dziwnego powodu.

+2

Spróbuj 'tail -n 1 */filename'. – Beta

+0

Dzięki, to działa, ale czy możesz wyjaśnić, dlaczego to robi? – mrkent

+0

Także, jaki jest najlepszy sposób na ich ogłaszanie i wpisywanie w naturalnej kolejności liczbowej, tak jak to robi ls -v. Myślę, że po prostu używając tail */filename, katalogi 1, 10, 11, 12, itd. Będą wymienione razem, podczas gdy ja chcę 1, 2, 3, 4, ... być wymienione razem. Dzięki. – mrkent

Odpowiedz

8

Podczas gdy head działa z -1 na wielu plikach, tail nie. Ale działa z -n argumentu Zamiast:

tail -n 1 */filename 
+2

Polecenie ls powinno ** nie ** zostać przeanalizowane (zobacz http://mywiki.wooledge.org/ParsingLs). – Emil

2

Jeśli nadal szuka odpowiedzi spróbuj poniżej jednego:

Przejdź do katalogu, w którym plik są dostępne i wykonanie poniżej polecenia

ls -1|while read file; do tail -1 $file; done 
Powiązane problemy