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: Zamiana treści w wielu plikach  (Przeczytany 1256 razy)

Offline cent4

  • Nowy na forum
  • *
  • Wiadomości: 6
    • Zobacz profil
Zamiana treści w wielu plikach
« dnia: 2022-03-04, 19:22:06 »
Mam folder z ok 5GB plików (jest ich tam ponad 3 000 000) wszystko to pliki tekstowe.
Jak usunąć z tych plików całe linie, które na swoim początku zawierają określony taki sam ciąg znaków?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Zamiana treści w wielu plikach
« Odpowiedź #1 dnia: 2022-03-04, 22:29:38 »
Program sed (grzebanie w plikach) plus program find (iteracja po kolejnych plikach)
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline cent4

  • Nowy na forum
  • *
  • Wiadomości: 6
    • Zobacz profil
Odp: Zamiana treści w wielu plikach
« Odpowiedź #2 dnia: 2022-03-05, 11:10:44 »
sed '/słowo do skasowania/d' /path/to/folder
Ale nie kasuje treści w podkatalogach tylko w bieżącym folderze - jak zrobić, żeby kasował również w podfolderach?

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 404
    • Zobacz profil
Odp: Zamiana treści w wielu plikach
« Odpowiedź #3 dnia: 2022-03-05, 11:16:18 »
Użyj find:
find /ścieżka -type f -exec sed [wyrażenie] {} +

Skopiuj na próbę w inne miejsce folder z kilkoma podfolderami i posrawdzaj, żebyś kuku w razie czego na całej bazie nie zrobił.
« Ostatnia zmiana: 2022-03-05, 11:19:07 wysłana przez marcin'82 »
marcin82

Offline cent4

  • Nowy na forum
  • *
  • Wiadomości: 6
    • Zobacz profil
Odp: Zamiana treści w wielu plikach
« Odpowiedź #4 dnia: 2022-03-05, 12:01:04 »
find /ścieżka/ -type f -exec sed '/słowo do usunięcia/d' {} +
Nie działa

Offline marcin'82

  • Users
  • Prawie jak Guru
  • ****
  • Wiadomości: 404
    • Zobacz profil
Odp: Zamiana treści w wielu plikach
« Odpowiedź #5 dnia: 2022-03-05, 12:03:26 »
Zadzała z falgą -i, ale najpierw przetestuj.

find /ścieżka -type f -exec sed -i [wyrażenie] {} +
marcin82

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Odp: Zamiana treści w wielu plikach
« Odpowiedź #6 dnia: 2022-03-05, 13:01:12 »
I uwaga: /słowo/d usunie linię, gdy słowo jest gdziekolwiek w tej linii. Jeżeli chcesz na początku, to wyrażenie brzmi /^słowo/d. Doatkowo, jeżeli nie chesz usunąć linii zaczynającej się od słowotok, to wyrażenie brzmi /^słowo\b/d
« Ostatnia zmiana: 2022-03-05, 13:45:56 wysłana przez Paweł Kraszewski »
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Offline cent4

  • Nowy na forum
  • *
  • Wiadomości: 6
    • Zobacz profil
Odp: Zamiana treści w wielu plikach
« Odpowiedź #7 dnia: 2022-03-05, 18:23:00 »
Użyj find:
find /ścieżka -type f -exec sed [wyrażenie] {} +

Skopiuj na próbę w inne miejsce folder z kilkoma podfolderami i posrawdzaj, żebyś kuku w razie czego na całej bazie nie zrobił.


Cudownie - Twoja podpowiedź w punkt - to działa - dziękuję serdecznie