Sie könnten awk verwenden:
%Vor% Schleife rückwärts durch die Felder und drucke jedes einzelne. OFS
ist das Ausgabefeldtrennzeichen (standardmäßig ein Leerzeichen) und ORS
ist das Ausgabesatztrennzeichen (ein Zeilenumbruch).
Ich nehme an, dass Sie nicht möchten, dass die Reihenfolge der Buchstaben in jedem Wort umgekehrt wird.
Ja, Sie können diese Befehle versuchen,
Für string ,
%Vor%Für die Variable ,
%Vor% Hier ist ein awk
mit do
while
(hier bei Stackoverflow nicht viel benutzt)
Keine zusätzliche Variable erforderlich i
Wenn Sie reine Shell, keine externen Tools benötigen, beachten Sie Folgendes:
%Vor%Ansonsten kann %code% Ihnen sofort helfen:
%Vor%oder
%Vor%Wenn die Verwendung von Haskell akzeptabel ist, gibt es ein nettes Tool namens Hawk (Haskell-Awk), das das sehr leicht machen kann. Zuerst müssen Sie es installieren:
%Vor%Dann:
%Vor%Sie benötigen %code% in Ihrem %code% , um %code% zu finden.
Sie können %code% wie folgt verwenden:
%Vor%sed Gruppierung:
%Vor%Sie könnten awk verwenden:
%Vor%Schleife rückwärts durch die Felder und drucke jedes einzelne. %code% ist das Ausgabefeldtrennzeichen (standardmäßig ein Leerzeichen) und %code% ist das Ausgabesatztrennzeichen (ein Zeilenumbruch).
Ich nehme an, dass Sie nicht möchten, dass die Reihenfolge der Buchstaben in jedem Wort umgekehrt wird.
Eine weitere reine Bash-Lösung:
%Vor%Das funktioniert in %code% (Ich habe %code% nicht, kann das also nicht überprüfen):
%Vor%benutze es so:
%Vor%Hier sind einige Alternativen. Erstens, eine, die nicht den C-Stil %code% verwendet:
%Vor%Der nächste (von hier ) funktioniert dort, wo Ersetzungen nicht möglich sind (z. B. unter Android)
%Vor%Ich habe versucht, eine Lösung zu finden, die in einem Android-Skript funktioniert, wobei %code% C-style %code% oder komplexe Ersetzungsoperationen nicht mag. Ich habe das letzte Beispiel gefunden, weil es keines benutzt.
AUSGABE
**** Programm zum Umkehren eines Strings ***
Geben Sie hier ein: Ich liebe mein Indien
Sie haben eingegeben: Ich liebe Mein Indien
Rückseite der Schnur: Indien Meine Liebe I
Dies ist die Funktion, die ich benutze (nicht in Asche getestet)
%Vor%(funktioniert auch in bash, aber manche Leute scheinen eine Abneigung gegen echo zu haben)
%Vor%Wenn die Eingabe aus der Datei gelesen werden soll (wie hier gefragt: Zeile rückwärts lesen) aus einer Datei ), Ich habe das folgende Bash-Skript erstellt, das die Wörter jeder Zeile in umgekehrter Reihenfolge druckt, ohne die Reihenfolge der Zeilen der Datei zu ändern (ich brauchte das, wenn ich zum Beispiel Wörter wie RTL anstelle von LTR lese):
%Vor%
Anmerkungen:
1) Stellen Sie sicher, dass die Eingabedatei im UNIX-EOL-Format vorliegt, andernfalls wird das letzte Wort möglicherweise von jeder Zeile abgeschnitten
2) Einige Fehlerprüfungen wurden der Einfachheit halber weggelassen.
Ich habe eine Liste von Wörtern in einem String:
%Vor%Ich möchte es umkehren, um
zu erhalten %Vor%Wie kann ich das mit %code% machen?
Wenn die Verwendung von Haskell akzeptabel ist, gibt es ein nettes Tool namens Hawk (Haskell-Awk), das das sehr leicht machen kann. Zuerst müssen Sie es installieren:
%Vor%Dann:
%Vor% Sie benötigen ~/.cabal/bin
in Ihrem PATH
, um hawk
zu finden.
Das funktioniert in sh
(Ich habe ash
nicht, kann das also nicht überprüfen):
benutze es so:
%Vor% Hier sind einige Alternativen. Erstens, eine, die nicht den C-Stil for
verwendet:
Der nächste (von hier ) funktioniert dort, wo Ersetzungen nicht möglich sind (z. B. unter Android)
%Vor% Ich habe versucht, eine Lösung zu finden, die in einem Android-Skript funktioniert, wobei sh
C-style for
oder komplexe Ersetzungsoperationen nicht mag. Ich habe das letzte Beispiel gefunden, weil es keines benutzt.
AUSGABE
**** Programm zum Umkehren eines Strings ***
Geben Sie hier ein: Ich liebe mein Indien
Sie haben eingegeben: Ich liebe Mein Indien
Rückseite der Schnur: Indien Meine Liebe I
Wenn die Eingabe aus der Datei gelesen werden soll (wie hier gefragt: Zeile rückwärts lesen) aus einer Datei ), Ich habe das folgende Bash-Skript erstellt, das die Wörter jeder Zeile in umgekehrter Reihenfolge druckt, ohne die Reihenfolge der Zeilen der Datei zu ändern (ich brauchte das, wenn ich zum Beispiel Wörter wie RTL anstelle von LTR lese):
%Vor%
Anmerkungen:
1) Stellen Sie sicher, dass die Eingabedatei im UNIX-EOL-Format vorliegt, andernfalls wird das letzte Wort möglicherweise von jeder Zeile abgeschnitten
2) Einige Fehlerprüfungen wurden der Einfachheit halber weggelassen.
Dies ist die Funktion, die ich benutze (nicht in Asche getestet)
%Vor%(funktioniert auch in bash, aber manche Leute scheinen eine Abneigung gegen echo zu haben)
%Vor%