Delete file met bepaalde inhoud

Pagina: 1
Acties:

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 27-01 08:31

Crazy-

Best life ever

Topicstarter
wie o wie heeft een oplossing hiervoor, ik loop namelijk een beetje vast ...

ik heb een map (linux) met +- 90.000 bestanden ....
nu wil ik bestanden hieruit filtere welke een bepaalde tekst (inhoud!) heeft, dus niet de bestandsnaam !!

normaliter:
sh# xargs egrep "bepaalde tekst" * | xargs rm
maar alsnog : bash: /usr/bin/xargs: Argument list too long

ofwel ... xargs kan het niet eens aan !

optie 2 die ik geprobeerd heb is een for loop:
sh# for i in `seq 0-9`a b c d e f g h i j k l m n o p q r s t u v w x y z ; do xargs rm *000$i* | xargs egrep "BEPAALDE TEKST" *000$i*; done
hier gebeurt een hoop, behalve het verwijderen van bestanden.

ik heb met optie 1 wel een deel kunnen doen, ongeveer 2000 files, maar verder wil ie NIET.

dus tja... ik loop een beetje vast

om precies te zijn:
sh# ls -1 | wc -l
89050

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Crazy- schreef op donderdag 05 februari 2009 @ 23:01:
wie o wie heeft een oplossing hiervoor, ik loop namelijk een beetje vast ...

ik heb een map (linux) met +- 90.000 bestanden ....
nu wil ik bestanden hieruit filtere welke een bepaalde tekst (inhoud!) heeft, dus niet de bestandsnaam !!

normaliter:


[...]


maar alsnog : bash: /usr/bin/xargs: Argument list too long

ofwel ... xargs kan het niet eens aan !
Dat ligt niet aan xargs, het komt niet eens bij xargs! Ik snap je dubbele aanroep van xargs ook niet, als je alsnog * gebruikt lost xargs helemaal niks op. find | xargs is de manier, dan probeer je niet meer alle bestandsnamen te expanden in 1 grote lijst, en code kun je beter in code-tags zetten in plaats van quote-tags :)

Verwijderd

grep -Rl "expression" . | while read FN; do rm -v "$FN"; done

  • Crazy-
  • Registratie: Januari 2002
  • Laatst online: 27-01 08:31

Crazy-

Best life ever

Topicstarter
sorry ;) volgende keer code tag. niet bij stil gestaan ....

anyway, ik zal de optie van Cheatah bekijken. die heb ik niet kunnen vinden, dus nieuw!

dubbele xargs gebruikte ik aan de hand van info die ik vond, zodoende.

12,85kWp - ZB 7,5m2/400l - 5kW Pana H WP (CV&SWW) - 13,8kWh accu


  • laurencevde
  • Registratie: November 2001
  • Laatst online: 02-10-2025
-R: recursief dirs doorlopen.
-l: enkel de naam van de matchende bestanden uitspugen.
Z'n 2e deel gaat trouwens niet werken voor bestanden met spaties, dan moet je "grep --null" gebruiken icm "xargs --null".

* expand al in bash, nog voordat het naar het opgegeven commando gaat, en dan wordt je commando dus een beetje lang...

Have a taste of freedom. It is sometimes a bitter pill. To me though, this is the sweetness of the GPL