Nowe posty

xx Problem z Linux Lite po instalacji (1)
Dzisiaj o 15:19:31
xx Dystrybucja pod HP Omen (7)
Dzisiaj o 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Terminal - polecenie :(  (Przeczytany 2684 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"