Problem

Die meisten Entwickler*innen nutzen auf der Bash Befehle wie grep oder ls intuitiv und ohne groß darüber nachzudenken. Die Bash bietet einfache Befehle zur Untersuchung von Dateien und deren Inhalt. In Java ist das zwar auch alles machbar, aber oft aufwendiger und die Implementierung ist unschöner. Es wäre doch eigentlich ganz schön, wenn es Funktionen wie ls, grep, cd, echo usw. auch in Java gäbe, oder!?

Lösung

Unix4j bietet genau diese Funktionen in Java an. Zu verdanken haben wir das zwei Entwickler*innen, die viel auf der Bash unterwegs waren und sich geärgert haben, dass die Bash einer IDE nicht gleich kommt. Sie haben die Vorteile einer IDE und den Bash-Befehlen verheiratet und daraus eine Bibliothek für Java entwickelt.

Die Bibliothek kann über Maven eingebunden werden.
<dependency>
    <groupId>org.unix4j</groupId>
    <artifactId>unix4j-command</artifactId>
    <version>0.6</version>
</dependency>
Ein Bash Commando wie z.B.
ls | grep -i "Controller" | sort -r
kann mit unix4j in Java wie folgt erstellt werden:
List<Line> result = Unix4j.ls()
                          .grep(Grep.Options.i, "Controller")
                          .sort(SortOption.reverse)
                          .wc(WcOption.lines)
                          .toLineList();
Natürlich sind auch Operationen direkt auf Strings möglich:
String result = Unix4j.fromString("Hello World").grep("World").wc().toStringResult();
Unterstützt werden zur Zeit folgende Kommandos: cat, cd, cut, echo, find, grep, head, ls, sed, sort, tail, uniq, wc, xargs
jambit Toiletpaper#168 unix4j

Weitere Aspekte

---

Autor: Patrick Hiesinger / Software Architect / Standort Leipzig

Lust, das nächste ToiletPaper zu schreiben? Jetzt bei jambit bewerben!

SCHREIB UNS

* Pflichtfeld

SCHREIB UNS

* Pflichtfeld

Cookie-Einstellungen

Diese Website verwendet Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und Zugriffe auf die Website zu analysieren. Zudem werden Informationen zu Ihrer Verwendung der Website an Partner für soziale Medien, Werbung und Analysen weitergegeben. Die Partner führen diese Informationen möglicherweise mit weiteren Daten zusammen, die Sie ihnen bereitgestellt haben oder die sie im Rahmen Ihrer Nutzung der Dienste gesammelt haben.

Weitere Informationen finden Sie in unserer Datenschutzerklärung. Dort können Sie nachträglich auch Ihre Cookie-Einstellungen ändern.

contact icon

Kontakt aufnehmen