Wie reverse-Spalte, um von einer Datei in Linux von der Kommandozeile aus
Habe ich eine Datei namens ip-list
mit zwei Spalten:
IP1 <TAB> Server1
IP2 <TAB> Server2
Und ich produzieren will:
Server1 <TAB> IP1
Server2 <TAB> IP2
Was ist die eleganteste, kürzeste Linux-Kommandozeilen-tool, es zu tun?
- Welche Plattform? Windows, Unix, Max . . .
- Hinzugefügt "Linux". Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden awk:
Sollten Sie geben, was Sie wollen.
Die einfachste Lösung ist:
Jedoch gibt es einige Probleme. Wenn es kann, werden Leerzeichen in die Felder, die Sie benötigen, zu tun: (je nachdem, ob Ihr awk unterstützt -v)
Alternativ können Sie einen der:
Einer der Kommentare, fragt, "wo spielt der mit dem Namen go"? awk wird als filter verwendet, so würde es erscheinen in der Regel als:
ohne mit dem Namen gegeben. Oder, kann ein Dateiname als argument mitgegeben werden, nachdem alle Befehle:
Mehr als zwei Spalten
Ausgabe:
Siehe auch: https://unix.stackexchange.com/questions/46275/swapping-an-unlimited-number-of-columns
Getestet mit GNU Awk 4.0.1.
perl -pi -e 's/^([^\t]+)\t([^\t]+)$/\2\t\1/' yourfile.csv
perl -pi -e 'split("\t"); print "$_[1]\t$_[0]"'
Den ersten vllt funktioniert auf
sed
auch.