Aus Linux-Magazin 11/2025

Xargs macht Dampf

© Wathanasing / 123rf.com

Unter den klassischen Kommandozeilen-Utilities ist Xargs so etwas wie das Phantom. Nach der Lektüre dieses Artikels könnte es Ihr Begleiter sein.

Wer kennt nicht die klassische Problemstellung: Wie finde ich Text in großen Mengen von Dateien? Früher oder später erwischt es jeden. Dann wird es oft hektisch – völlig zu Unrecht. Ich habe in den Ausgaben 04/2023 [1] und 05/2023 [2] schon einmal der Macht von Find gehuldigt, dabei aber dessen wohl fähigsten Begleiter sträflich vernachlässigt. Das muss sich ändern.

Der eingangs formulierten Aufgabenstellung könnte ich mich halbwegs naiv nähern, indem ich schlicht und einfach Grep mit entsprechenden Parametern (Listing 1, erste Zeile) auf das Problem loslasse. Diese Herangehensweise endet gern mit dem Fehler aus der zweiten Zeile von Listing 1. Da haben wir nun den Salat: Im Zielordner gibt es zu viele Dateien. Zu viele, um sie Grep als Parameter durch die Bash übergeben zu lassen.

Listing 1

Grep

$ grep -Hni needle haystack/*
bash: /usr/bin/grep: Argument list too long
$ find . -type f -exec grep -H -n -i needle {} \;

Deswegen muss ich anders ansetzen und greife auf Find zurück. Wer sich kurz mit dem Tool beschäftigt, stolpert schnell über den Parameter »-exec«. Mit diesem Ansatz übergibt Find dem Kommando nach »-exec« die aktuelle Fundstelle, gekennzeichnet durch ein geschweiftes Klammerpaar (Listing 1, letzte Zeile). Ein abschließendes, per Backslash entschärftes Semikolon sorgt dafür, dass Find das Ende des Arguments von »-exec« erkennt.

In der Tat löst dieser Ansatz mein Problem, allerdings zu einem Preis. Was hier passiert, ist langsam und vor allem verschwenderisch. Für jede Fundstelle muss Find einen eigenen Grep-Prozess starten, egal, ob es den Suchbegriff, den Grep finden soll, überhaupt in der jew...

[...]
Linux-Magazin Online veröffentlicht alle Print-Artikel, die seit 2001 im Linux-Magazin erschienen sind. Damit steht Ihnen ein hochwertig bestücktes Archiv bis hin zu den Beiträgen der aktuellen Ausgabe online zur Verfügung. Die über 4.000 Artikel sind größtenteils kostenlos zugänglich, nur für Beiträge (als PDF) der jüngsten zehn Linux-Magazine ist eine kleine Gebühr fällig.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben