Ich habe eine Datei wie die folgende:
1234
ABCD
EFGH
Ich würde es gerne in folgendes konvertieren:
2341
BCDA
FGHE
Die eigentliche Datei enthält 4.000 Wörter, daher möchte ich dies auf effiziente Weise tun. Ich habe versucht, den Befehl zu verwenden cut -c 2-4,1 file.txt
, aber er erzeugt genau die gleiche Ausgabe wie die Eingabe. Ich dachte, ich könnte 3 verschiedene Befehle verwenden:
cut -c 1 file.txt > temp1.txt
cut -c 2-4 file.txt > temp2.txt
// combine the two with paste or pr
... aber ich würde einen einzelnen Befehl vorziehen, da ich ihn mit geringfügigen Änderungen mehrmals ausführen muss, sodass das Ausführen eines Befehls weniger fehleranfällig ist als das Ausführen von 3 Befehlen jedes Mal.
Gibt es eine Möglichkeit, die beiden cut-Anweisungen zu einer zu kombinieren? Etwas wie:
cut -c 1 file.txt | pr (cut -c 2-4 file.txt)
Oder gibt es einen besseren Weg, dies zu tun?
quelle
-d ''
statt ,--delimiters=''
um Zeichen aus LISTE Wiederverwendung anstelle von TabulatorenWenn Sie bash verwenden, verwenden Sie die Zeichenfolgenindizierung der Parametererweiterung :
quelle
Sie können das Trennzeichen über "-F" nach Ihren Angaben ändern und die Reihenfolge der Felder beliebig gestalten.
quelle
Hier ist ein Weg mit
perl
:An den Buchstabengrenzen automatisch teilen, eine nach links drehen und drucken.
quelle
Ich habe eine Alternative in einem Skript gefunden:
Das Skript schneidet die Ketten in separate Dateien. Fügen Sie dann eine neue Datei (file4.txt) hinzu und entfernen Sie schließlich die Ersatzdateien.
die llua-lösung ist für meinen geschmack sauberer.
quelle
Haben Sie versucht, rev?
~$ cat filename | rev
quelle