GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Welches ist das portabelste von Sed, Awk, Perl und Sh?

Kann jemand diese Tools nach Portabilität ordnen? Welche davon ist sicher selbst auf den minimalsten *nix-Systemen zu finden? Ist einer von ihnen 100% sicher, dass er anwesend ist? Meine Vermutung ist, dass die Reihenfolge die folgende ist:

  1. Ach
  2. sed
  3. sch
  4. Perle

Während ich mir vorstelle, dass es Systeme gibt, die standardmäßig keine Bourne-Shell verwenden, einige Shell wird standardmäßig vorhanden sein, wird das immer unter /bin/sh sein ? Vermutlich nicht, wenn es sich nicht um eine Granate vom Typ Bourne handelt. Beide awk und sed haben Seiten, die sie in der POSIX-Spezifikation erklären, also werden sie vermutlich immer vorhanden sein. Stimmt das?
Kann ich sicher sein dass beide auf keinem *nix installiert werden? Einschließlich eingebetteter Systeme?

Akzeptierte Antwort:

Welche von sed, awk, perl und sh ist die portabelste?

sed , sh und awk sind portabel, was durch POSIX, perl spezifiziert wird nicht durch einen Standard unterstützt wird.

Kann jemand diese Tools nach Portabilität ordnen?

Wenn Sie sich an konformen Code halten, sollte es keine Portierbarkeitsordnung für die drei POSIX-Befehle geben.

Welches davon ist mit Sicherheit selbst auf den minimalsten *nix-Systemen zu finden?

Die drei POSIX-Dienstprogramme sind zusammen mit vielen anderen Dienstprogrammen obligatorisch, damit ein Betriebssystem POSIX ist. Es gibt jedoch Betriebssysteme, denen einige davon aufgrund von Minimierung fehlen oder die unvollständige/nicht konforme Implementierungen bereitstellen.

Tatsächlich würden die meisten (wenn nicht alle) freien und Open-Source-Unix-ähnlichen Betriebssysteme den Konformitätsprozess wahrscheinlich nicht bestehen, sollten sie es versuchen, und sie versuchen es sowieso nie.

Ist einer von ihnen 100 % sicher, dass er anwesend ist?

Ich wäre überrascht, ein *nix-ähnliches Betriebssystem zu finden, dem eine auf Bourne-Syntax basierende Shell fehlt, aber alles ist möglich, insbesondere bei eingebetteten Systemen.

Meine Vermutung ist, dass die Reihenfolge wie folgt ist:
Irgendeine Shell wird standardmäßig vorhanden sein, wird das immer unter /bin/sh sein?

/bin/sh ist wahrscheinlich eine Shell der Bourne-Syntaxfamilie, aber es ist nicht garantiert, dass sie POSIX-kompatibel ist, nicht einmal in en POSIX-kompatiblen Systemen. Zum Beispiel ist es /usr/xpg4/bin/sh unter Solaris 10 und älter während /bin/sh ist die ältere ursprüngliche Bourne-Shell, die nicht POSIX ist.

Verwandte:Wie verwendet man sed oder ex, um einen Block (mehrzeiliger Code) durch einen neuen Textblock (Code) zu ersetzen?
Linux
  1. Welchen Linux-Terminalbefehl verwenden Sie am häufigsten?

  2. Arbeiten mit Spalten – Awk und Sed?

  3. Was sind die Unterschiede zwischen grep, awk und sed?

  4. Das Konzept von 'Hold space' und 'Pattern space' in sed

  5. Wie können die Schwachstellen Spectre und Meltdown auf Linux-Systemen gemindert werden?

Wie man den Befehl fuser unter Linux verwendet und optimal nutzt

Der Unterschied zwischen mehr, weniger und den meisten Befehlen

Verwendung von OpenSSL und der Internet-PKI auf Linux-Systemen

So löschen Sie leere Zeilen in Dateien mit Grep, Sed und Awk

Die nützlichsten FFmpeg-Befehle für die Audio- und Videokonvertierung

Die 15 besten Linux-Bootloader für Heim- und eingebettete Systeme