Nowe posty

Autor Wątek: Terminal - polecenie :(  (Przeczytany 2720 razy)

noobek92

  • Gość
Terminal - polecenie :(
« dnia: 2012-11-02, 21:32:09 »
Nie wiem czy to dobry dział, nie znam się na tym niestety :(
Po mimo tego proszę was o pomoc.

Mam napisać komendę w terminalu, która wybije 5 linijek wszystkich plików, ale tylko tych tekstowych (nie chodzi o same .txt, szczegóły wyjaśnię dalej).

Mianowicie za pomocą komendy file i grep , wybrałem tylko te pliki które mają zostać odczytane. Odciąłem cut'em informację na temat tych plików tak, że zostały mi same ich ścieżki. Ale nie mam pojęcia jak wyświetlić zawartość tych plików, żeby potem móc wypisać tylko pierwsze pięć linii każdego z nich.


Cytuj
file -i /ścieżka/do/plików/* | grep "text" | cut -d : -f 1
Jak na razie użyłem takiej komendy i jak wspomniałem mam listę ścieżek właściwych plików, ale nie mam pojęcia jak je odczytać :(

Proszę o pomoc, nie wiem czy wszystko dokładnie wyjaśniłem, dlatego proszę pytać jeżeli coś jest niezrozumiałe :)

Miło by było, gdyby jak już ktoś napiszę dalsze polecenie , wyjaśnił jak ono działa.

  • Gość
Terminal - polecenie :(
« Odpowiedź #1 dnia: 2012-11-02, 22:41:07 »
Polecenie cat?

Offline vanhelzing

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 314
    • Zobacz profil
Terminal - polecenie :(
« Odpowiedź #2 dnia: 2012-11-03, 09:26:13 »
Możesz przekierować do "xargs head", albo użyć "for in" na liście plików.

np.
file --mime-type * | grep ":[ ]*text/" | cut -d: -f1 | xargs head -qn5
albo
for f in `file --mime-type * | grep ":[ ]*text/" | cut -d: -f1` ; do
  head -qn5 $f
done
Poczytaj sobie o poleceniach "xargs", "head", oraz pętli "for in".

ps. W grepie miałeś błąd, który znalazłby pliki posiadające ciąg "text" w nazwie albo w typie mime, np "text.png image/png"