Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 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

Autor Wątek: [bash]Usuniecie plikow z liczba slow 5  (Przeczytany 2211 razy)

kruczek23

  • Gość
[bash]Usuniecie plikow z liczba slow 5
« dnia: 2012-10-23, 13:50:05 »
Chodzi o polecenie które usunie wszystkie pliki *.log (z katalogu) jezeli liczba słów w nich zawarta jest równa 5.
Zacząłem kombinować w ten sposób:
wc -w *.log | grep 5
otrzymuje tak te pliki ale z programu grep chciałbym przekazać je do rm który je usunie, ale coś nie chce działać czy mógłby ktoś pomóc ? czy w ogóle dobrze kombinuje ?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
[bash]Usuniecie plikow z liczba slow 5
« Odpowiedź #1 dnia: 2012-10-23, 15:01:25 »
Ten grep złapie też pliki
* Z 5 w nazwie
* Z 55 555 105, 500 i dowolną ilością słów, byle gdzieś było 5.

1. Struktura wyniku wc -w jest taka:
     281 memtest
      53 memtest.cpp
   10051 oompi.pdf
  236106 openmpi-1.6.2.tar.bz2
czyli ilość - spacja - nazwa

2. Wynik puść przez AWKa. Jeżeli pierwsza kolumna równa się (dokładnie) 5, to wypisz drugą kolumnę. W wyniku dostaniesz listę pasujących plików.

3. Masz czarodziejski (i niebezpieczny) program xargs, który jako parametr bierze nazwę programu do uruchomienia a argumenty dla niego przyjmuje ze standardowego wejścia (np poprzedniego programu w potoku)

Czyli - w skrócie:

wc -w *.log | awk COŚTAMCOŚTAM | xargs COŚTAMCOŚTAM

COŚTAMCOŚTAM sobie dopisz na podstawie dokumentacji awk i xargs.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

kruczek23

  • Gość
[bash]Usuniecie plikow z liczba slow 5
« Odpowiedź #2 dnia: 2012-10-23, 16:52:43 »
awk -F"5" '{print $2}' to działa ale xargs rm -rf juz nie