numeric sort recursive filelist

OP #6385301
Bin gerade am gröbeln mit einem input | sort > output im bash-script.

Als input fließen über den stdin von
1
find . -iname '*.txt' | xargs -L 1 echo | awk '{print $0}' >> files.txt
 einige Dateinamen ein.

Relevant ist nur das letzte Zeichen des Dateinamens. Das ist numerisch 
und danach soll sortiert werden z.B.
1
| sort -dn -o files.txt

Ein möglicher input mit gewünschter Sortierung wäre z.B.
1
./1.txt
2
./nachrichten2.txt
3
week/gestern/frisch_gezüchtet3.txt
4
old/eskimo99_witze_4.txt
5
./nix_neues_6.txt
6
tief/vergraben/22/eiersuche_7.txt
7
archive/4cm_schnee_im_januar9.txt

Weder `sort` noch `cut` haben einen Parameter, um das letzte Zeichen 
(reverse) oder meinetwegen die letzten 5 Zeichen 
(lastchar+dot+extension) abzufangen.

Hat jemand eine Idee wie ich ansetzen könnte?
Moderator
Wenn alle Dateinamen die gleiche Extension haben:

1
rev files.txt | sort | rev

Wenn die Extensions verschieden sein können, aber jeder Dateiname
irgendeine Extension hat:

1
rev files.txt | sort -t. -k2 | rev
OP
1
$ find . -iname '*.txt' | xargs -L 1 echo | awk '{print $0}' >> files_unsorted
2
$ cat files_unsorted 
3
./8.txt
4
./dir1/2.txt
5
./dir1/5.txt
6
./dir1/9.txt
7
./dir2/4.txt
8
./dir2/dir2a/3.txt
9
./1.txt
10
$ rev files_unsorted | sort | rev
11
./1.txt
12
./dir1/2.txt
13
./dir2/dir2a/3.txt
14
./dir2/4.txt
15
./dir1/5.txt
16
./8.txt
17
./dir1/9.txt

Bravo! Alles schön nach numeric sortiert, Pfade beibehalten ohne 
aufwendig zu vergewaltigen :)

Ich Danke dir Yalu.
OP
Yalu X. schrieb:
> sort -t. -k2
Das ist genial, muss ich mir merken. In Kombination mit `rev` kann man 
dann schön reverse ansetzen.

-t, --field-separator=SEP  SEP benutzen statt Übergang von Nichtleerraum 
zu Leerraum
Klingt stark na Delimiter, in diesem Fall ist es der Punkt vor der 
extension.

Super!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.