map

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Archive entpacken

  2. ⚓︎ Pakete aus dem Quellcode erstellen

  3. ⚓︎ mit Root-Rechten arbeiten

  4. ⚓︎ Ein Terminal öffnen

map 🇬🇧 ist ein kleines Hilfsprogramm für den Terminal, welches von der Standardeingabe liest und dann einen Befehl zeilenweise auf alle Daten von der Standardeingabe anwendet.

Das Programm kann nichts, was nicht auch mit xargs, awk oder in Teilen auch find erreichbar wäre - nur ist map für einfache Anwendungsfälle einfacher zu handhaben als die genannten Programme.

Installation

map ist nicht in den Paketquellen enthalten oder als fertig kompilierte Binärdatei verfügbar, lässt sich jedoch einfach kompilieren und installieren.

Hinweis!

Fremdsoftware kann das System gefährden.

Dazu lädt man die aktuelle Version als ZIP-Datei herunter ⮷ und entpackt diese in einem beliebigen Verzeichnis (z.B. dem eigenen Homeverzeichnis)[1]. Dort wechselt man in das Verzeichnis master-zip und führt den Befehl zum Kompilieren und Installieren aus [2][3]:

sudo make install 

Damit ist das Programm einsatzbereit.

Benutzung

Die allgemeine Syntax von map lautet:

EINGABE | map VARIABLE KOMMANDO 

EINGABE ist der Befehl, der ein oder mehrere Zeilen als Ausgabe hat. VARIABLE ist der Variablenname, den man der Eingabe zuweist. Dieser kann im Prinzip beliebig gewählt werden. KOMMANDO ist der Befehl, an den die Variable übergeben wird und der für jede Eingabezeile angewendet wird.

Im folgenden Beispiel dient als Eingabe die Ausgabe des Befehls ls. Jede Eingabe wird iterativ der Variablen f zugewiesen und dann file auf jede Zeile angewendet.

ls | map zeile 'test -f $zeile && wc -m $zeile'  

Die Ausgabe sieht dann z.B. so aus, wenn man sich im Verzeichnis befindet, in dass man die unter "Installation" heruntergeladenen Daten entpackt hat:

LICENSE: ASCII text
makefile: RAGE Package Format (RPF),
map: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=cf71a82056f9ed6a5650cec21e192e69c1129816, for GNU/Linux 3.2.0, stripped
map.1: troff or preprocessor input, ASCII text
map.c: C source, ASCII text
README.md: ASCII text
test: directory

Der folgende Befehl würde für jede Datei im aktuellen Verzeichnis die Anzahl der Zeichen zählen:

ls | map zeile 'wc -m $zeile' 

Auf der in Einleitung verlinkten Projektseite sind noch weitere Beispiele für die Verwendung von map zu finden.

Deinstallation

Zur Deinstallation wechselt man einfach wieder in das Verzeichnis, in das man bei der Installation die Daten entpackt hat und führt dort den Befehl

sudo make uninstall 

aus.