Skip to content
Hamatoma edited this page Aug 10, 2022 · 6 revisions

Sortieren von Zeilen nach verschiedenen Kriterien.

  • Die Bereiche, die für die Sortierung relevant sind, können Zeichenbereiche (von Zeichen x bis Zeichen y) oder wortbasiert (von Wort x bis Wort y) sein oder reguläre Ausdrücke sein.
  • Die Worttrenner können definiert werden.
  • Es können mehrere Bereiche definiert werden.
  • Ein Bereich kann als "numerisch" gekennzeichnet werden: Dann erfolgt die Sortierung nach dem Zahlwert, nicht alphanumerisch. Zahlen können Ganzzahlen oder Gleitpunktzahlen sein.

Table of Contents

Parameter

Name Typ Beschreibung Beispiel
input bufferName Der Text aus diesem Puffer wird untersucht. Voreinstellung: input input=data
output bufferName das Ergebnis wird in diesen Puffer geschrieben. Voreinstellung: output output=result
type string Typ des Bereichs: char word regexpr Voreinstellung: char type=word
ranges string Syntax: ['n']start[-end] Ein Bereich besteht aus einem Startwert und evt. einem Endwert, der mit '-' getrennt wird. Der Bereich kann mit 'n' beginnen, dann ist er numerisch. Es können mehrere Bereiche angegeben werden, Trenner ist ','. Start- und Endwerte beginnen mit 1 für den ersten Wert. Der Endwert ist inklusiv. Ist kein Endwert angegeben, ist der Startwert auch der Endwert. n3,n4-5,1
filter pattern Ein regulärer Ausdruck, der Suchbereiche definiert. Die suchrelevanten Zeichenketten werden als Gruppen (mit '(' und ')' eingeschlosson) definiert. Dieser Parameter setzt automatisch den Typ auf "regexpr". filter=r/name: (\w+).*id: (\d+).*role: (\w+)/
Filters patternList Eine Liste mit regulärer Ausdruck, der Suchbereiche definiert. Die suchrelevanten Zeichenketten werden als Gruppe (mit '(' und ')' eingeschlosson) definiert. Dieser Parameter setzt automatisch den Typ auf "regexpr". Filters=;r/id: (\d+)r/;r/name: (\w+)/;r/role: (\w+)/
separator pattern Ein Suchmuster (String oder regulärer Ausdruck), das die Worte voneinander trennt. Die suchrelevanten Zeichenketten werden durch Gruppen (umrahmt von '(' und ')') definiert. Dieser Parameter setzt automatisch den Typ auf "word". Default: Leerzeichen und Tabulatoren: r/\s+/ sep=","
sep=r/[,;]/

Beispiele

Beispiel 1: Sortieren einer CSV-Datei

Im Puffer csv steht:

Joe,1,user
Bob,2,adm
Charly,11,user
Kommando:
sort input=csv type=word ranges=3,n2,1 separator=","
reverse input=output output=csv
Im Ergebnispuffer output (Voreinstellung) steht:
Bob,2,adm
Joe,1,user
Charly,11,user

Beispiel 2: Sortieren einer Dateistatistik mit einem regulären Ausdruck

Im Puffer data steht:

home: dirs: 122 hidden-dirs: 29 files: 38299 MBytes: 1203.042
opt: dirs: 29 files: 1239 MBytes: 123.432
data: dirs: 4988 files: 792374 MBytes: 542034.774
Kommando:
sort input=data filter=r/dirs: (\d+).*files: (\d+).*MBytes: (\S+)/ ranges=n2,n3
Im Ergebnispuffer output (Voreinstellung) steht, nach Datenmenge sortiert:
data: dirs: 4988 files: 792374 MBytes: 542034.774
home: dirs: 122 hidden-dirs: 29 files: 38299 MBytes: 1203.042
opt: dirs: 29 files: 1239 MBytes: 123.432

Beispiel 3: Sortieren einer Dateistatistik mit einer Liste von regulären Ausdrücken

Im Puffer data steht:

home: dirs: 122 hidden-dirs: 29 files: 38299 MBytes: 1203.042
opt: dirs: 29 files: 1239 MBytes: 123.432
data: dirs: 4988 files: 792374 MBytes: 542034.774
Kommando:
sort input=data Filters=;r/MBytes: ([\d.]+)/;r/dirs: (\d+)/;r/files: (\d+)/ ranges="n1,n1,n1"
Im Ergebnispuffer output (Voreinstellung) steht, nach Datenmenge sortiert:
data: dirs: 4988 files: 792374 MBytes: 542034.774
home: dirs: 122 hidden-dirs: 29 files: 38299 MBytes: 1203.042
opt: dirs: 29 files: 1239 MBytes: 123.432

Clone this wiki locally