Próbuję numerycznie sortować serię plików wyjściowych za pomocą polecenia ls, które pasuje do wzorca ABCDE1234A1789.RST.txt
lub ABCDE12345A1789.RST.txt
przez pole "789
".Używanie polecenia bash sort w nazwach plików o zmiennej długości
W powyższych wzorach przykładowych, ABCDE
jest taki sam dla wszystkich plików, 1234
lub 12345
są cyframi, które są różne, ale zawsze mają 4 lub 5 cyfr. A1
ma taką samą długość dla wszystkich plików, ale wartość może się różnić, więc niestety nie można jej użyć jako ogranicznika. Wszystko po pierwszym .
jest takie samo dla wszystkich plików. Coś jak:
ls -l *.RST.txt | sort -k +9.13 | awk '{print $9} ' > file-list.txt
dopasuje krótsze nazwy plików, ale nie z powodu dłuższych zmiennej długości znaków przed polem chcę sortować.
Czy istnieje sposób na sortowanie wszystkich plików bez wcześniejszego dopełniania krótszych plików, aby miały taką samą długość
FYI - polecenie 'sort' nie jest częścią bash, ale standardowe narzędzie UNIX. Jako taki jest dostępny dla dowolnego programu (i dowolnej powłoki). –