numeric sort recursive filelist

OP #6385301
Lesenswert?

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?
OP #6385334
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren