Упорядочить вывод команды ls на основе имен файлов и в порядке их поступления - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть файл с содержимым ниже, который выводится командой ls -lrt. Это большой файл, который содержит вывод ls -lrt в течение нескольких месяцев.

sh>  ls -lrt /vdat/sfrdir/mkbs/daily/2020*/*/*{GNMDCONS,GMFDAILY,GMFDLYMNI,FHLSEC1D,FNMSEC1D,FHLSUP1D,FNMSUP1D,FNMDUSDN,GNMHECD,FNMSEC1M,FHLSEC1M,FHLSEC2M,FHLSEC3M,FHLPSEC4M,FNMSUP1M,FHLSUP1M,FHLSUP2M,FHLSUP3M,FHLPSUP4M,FNMDUSMBS,GNMISS2,G11FCTR,G21FCTR,GNMHECM,GMFMON,GNMMCONS,G12FCTR,G22FCTR,FNMGMEGA,FHLGGNT,GNMPDSCL,FNMDUSDC,FNMDUSMC}.*

Файл состоит из двух частей: ZIP-файл и SIG-файл. Они загружаются с разными отметками времени.

sh> head /tmp/jan_files -n14
-rw-r--r--. 1 ctlr sftg      1541 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg    191881 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg     23185 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDLYMNI.ZIP
-rw-r--r--. 1 ctlr sftg        30 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDLYMNI.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg      7726 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSEC1D.ZIP.11:39:35
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSEC1D.SIG.11:40:18
-rw-r--r--. 1 ctlr sftg    185206 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSUP1D.ZIP.11:40:38
-rw-r--r--. 1 ctlr sftg     11179 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSEC1D.ZIP.11:44:54
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSEC1D.SIG.11:45:37
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSUP1D.SIG.11:41:21
-rw-r--r--. 1 ctlr sftg    282086 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSUP1D.ZIP.11:45:59
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSUP1D.SIG.11:46:44
sh> 

Я пытаюсь создать вывод, который соединяет вместе файлы ZIP и SIG в зависимости от времени, которое они пришли, как показано ниже.

sh> head /tmp/jan_files -n14
-rw-r--r--. 1 ctlr sftg      1541 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg    191881 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg     23185 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDLYMNI.ZIP
-rw-r--r--. 1 ctlr sftg        30 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDLYMNI.SIG
-rw-r--r--. 1 ctlr sftg      7726 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSEC1D.ZIP.11:39:35
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSEC1D.SIG.11:40:18
-rw-r--r--. 1 ctlr sftg    185206 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSUP1D.ZIP.11:40:38
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSUP1D.SIG.11:41:21
-rw-r--r--. 1 ctlr sftg     11179 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSEC1D.ZIP.11:44:54
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSEC1D.SIG.11:45:37
-rw-r--r--. 1 ctlr sftg    282086 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSUP1D.ZIP.11:45:59
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSUP1D.SIG.11:46:44
sh> 

Я создал нижеприведенную команду сортировки, которая близка, но это не то, что я ищу.

sh> sort -s -k6M -k7n -b -k8.1,8.2 -k9.42,9.43 -k9.51,9.52 /tmp/jan_files | head -n14
-rw-r--r--. 1 ctlr sftg      1541 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg     23185 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDLYMNI.ZIP
-rw-r--r--. 1 ctlr sftg    191881 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg        30 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDLYMNI.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg      7726 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSEC1D.ZIP.11:39:35
-rw-r--r--. 1 ctlr sftg    185206 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSUP1D.ZIP.11:40:38
-rw-r--r--. 1 ctlr sftg     11179 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSEC1D.ZIP.11:44:54
-rw-r--r--. 1 ctlr sftg    282086 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSUP1D.ZIP.11:45:59
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSEC1D.SIG.11:40:18
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSUP1D.SIG.11:41:21
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSEC1D.SIG.11:45:37
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSUP1D.SIG.11:46:44
sh> 

Обновление:

Другой случай ввода файлов

sh-4.1$ head /tmp/jan_files
-rw-r--r--. 1 ctlr sftg      2163 Jan  3 05:23 /vdat/sfrdir/mkbs/daily/20200103/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:24 /vdat/sfrdir/mkbs/daily/20200103/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg    239840 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg     13560 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.11:43:28
-rw-r--r--. 1 ctlr sftg    207324 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.11:44:23
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.11:44:58
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.11:44:04
-rw-r--r--. 1 ctlr sftg      8525 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.11:38:56
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.11:39:31
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.11:39:50
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.11:40:25
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.15:39:11
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.15:40:10
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.15:40:47
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.15:39:51
-rw-r--r--. 1 ctlr sftg     13958 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.15:43:55
-rw-r--r--. 1 ctlr sftg    212215 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.15:44:50
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.15:44:32
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.15:45:28
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg     16340 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG
-rw-r--r--. 1 ctlr sftg    239708 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG
-rw-r--r--. 1 ctlr sftg      2513 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP.20:00:56
-rw-r--r--. 1 ctlr sftg      5286 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP.20:01:54
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG.20:02:30
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG.20:01:35
-rw-r--r--. 1 ctlr sftg      3249 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP
-rw-r--r--. 1 ctlr sftg      5951 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG
sh-4.1$ 

Поставщик создает определенные файлы каждый день. Ниже приведен список файлов. {GNMDCONS, GMFDAILY, GMFDLYMNI, FHLSEC1D, FNMSEC1D, FHLSUP1D, FNMSUP1D, FNMDUSDN, GNMHECD, FNMSEC1M, FHLSEC1M, FHLSEC2M, FHLSEC3M, FHLPSEC4M, FNMSUP1M, FHLSUP1M, FHLSUP2M, FHLSUP3M, FHLPSUP4M, FNMDUSMBS, GNMISS2, G11FCTR, G21FCTR, GNMHECM, GMFMON , GNMMCONS, G12FCTR, G22FCTR, FNMGMEGA, FHLGGNT, GNMPDSCL, FNMDUSD C, FNMDUSMC} Каждый файл состоит из двух частей: файла ZIP и файла SIG. Проблема в том, что они загружаются с разными временными метками. Я пытаюсь соединить их вместе в зависимости от времени загрузки. Затем я буду использовать этот список для другой операции, которая загрузит эти файлы в базу данных. Для операции загрузки требуется как ZIP-файл, так и связанный с ним файл SIG. Кроме того, когда один и тот же файл поступает несколько раз в день, он переименовывается с меткой времени, добавленной к имени файла.

Я ищу что-то подобное.

-rw-r--r--. 1 ctlr sftg      2163 Jan  3 05:23 /vdat/sfrdir/mkbs/daily/20200103/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:24 /vdat/sfrdir/mkbs/daily/20200103/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg    239840 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg      8525 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.11:38:56
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.11:39:31
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.11:39:50
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.11:40:25
-rw-r--r--. 1 ctlr sftg     13560 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.11:43:28
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.11:44:04
-rw-r--r--. 1 ctlr sftg    207324 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.11:44:23
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.11:44:58
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.15:39:11
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.15:39:51
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.15:40:10
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.15:40:47
-rw-r--r--. 1 ctlr sftg     13958 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.15:43:55
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.15:44:32
-rw-r--r--. 1 ctlr sftg    212215 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.15:44:50
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.15:45:28
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG
-rw-r--r--. 1 ctlr sftg     16340 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG
-rw-r--r--. 1 ctlr sftg    239708 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG
-rw-r--r--. 1 ctlr sftg      2513 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP.20:00:56
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG.20:01:35
-rw-r--r--. 1 ctlr sftg      5286 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP.20:01:54
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG.20:02:30
-rw-r--r--. 1 ctlr sftg      3249 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG
-rw-r--r--. 1 ctlr sftg      5951 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG

Это то, что выводит мой вид

sh-4.1$ sort -s -k6M -k7n -b -k8.1,8.2 -k9.42,9.43 -k9.51,9.52 /tmp/jan_files
-rw-r--r--. 1 ctlr sftg      2163 Jan  3 05:23 /vdat/sfrdir/mkbs/daily/20200103/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg    239840 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:24 /vdat/sfrdir/mkbs/daily/20200103/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg      8525 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.11:38:56
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.11:39:50
-rw-r--r--. 1 ctlr sftg     13560 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.11:43:28
-rw-r--r--. 1 ctlr sftg    207324 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.11:44:23
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.11:39:31
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.11:40:25
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.11:44:58
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.11:44:04
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.15:39:11
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.15:40:10
-rw-r--r--. 1 ctlr sftg     13958 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.15:43:55
-rw-r--r--. 1 ctlr sftg    212215 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.15:44:50
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.15:40:47
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.15:39:51
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.15:44:32
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.15:45:28
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg     16340 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg    239708 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg      2513 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP.20:00:56
-rw-r--r--. 1 ctlr sftg      5286 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP.20:01:54
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG.20:02:30
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG.20:01:35
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG
-rw-r--r--. 1 ctlr sftg      3249 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP
-rw-r--r--. 1 ctlr sftg      5951 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG
sh-4.1$ 

И это то, что выводит ваше решение

sh-4.1$ awk  -F"[/.]" '{print $2,$9,$8" |"$0}' /tmp/jan_files | \
> sort -k5,5M -k6,6n -k7,7 -k8,9                   | \
> awk  -F"|" '{print $2}'
-rw-r--r--. 1 ctlr sftg      2163 Jan  3 05:23 /vdat/sfrdir/mkbs/daily/20200103/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:24 /vdat/sfrdir/mkbs/daily/20200103/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg    239840 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 05:34 /vdat/sfrdir/mkbs/daily/20200103/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg     13560 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.11:43:28
-rw-r--r--. 1 ctlr sftg    207324 Jan  3 06:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.11:44:23
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.11:44:04
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.11:44:58
-rw-r--r--. 1 ctlr sftg      8525 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.11:38:56
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.11:39:31
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.11:39:50
-rw-r--r--. 1 ctlr sftg        29 Jan  3 06:33 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.11:40:25
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP.15:39:11
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 11:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP.15:40:10
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG.15:39:51
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG.15:40:47
-rw-r--r--. 1 ctlr sftg     13958 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP.15:43:55
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG.15:44:32
-rw-r--r--. 1 ctlr sftg    212215 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP.15:44:50
-rw-r--r--. 1 ctlr sftg        29 Jan  3 11:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG.15:45:28
-rw-r--r--. 1 ctlr sftg    174536 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg     16340 Jan  3 15:30 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg      8537 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Products/FHLSEC1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSEC1D.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FHLSUP1D.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:31 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSEC1D.SIG
-rw-r--r--. 1 ctlr sftg    239708 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMSUP1D.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:32 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMSUP1D.SIG
-rw-r--r--. 1 ctlr sftg      2513 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP.20:00:56
-rw-r--r--. 1 ctlr sftg      5286 Jan  3 15:55 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP.20:01:54
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG.20:01:35
-rw-r--r--. 1 ctlr sftg        29 Jan  3 15:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG.20:02:30
-rw-r--r--. 1 ctlr sftg      3249 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSDN.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSDN.SIG
-rw-r--r--. 1 ctlr sftg      5951 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Products/FNMDUSMN.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  3 19:56 /vdat/sfrdir/mkbs/daily/20200103/Signal/FNMDUSMN.SIG
sh-4.1$ 

1 Ответ

3 голосов
/ 05 февраля 2020

Допущения:

  • time they arrived относится к метке времени ОС в файле (например, Jan 2 05:23), а не к суффиксу метки времени, который некоторые файлы имеют
  • . Отметка времени ОС имеет приоритет при сортировке файлов, что означает ...
  • 'совпадающие' файлы будут иметь одинаковую отметку времени ОС (например, 05:23 == 05:23), иначе предлагаемый метод сортировки может не группировать совпадающие файлы вместе [ПРИМЕЧАНИЕ: это предположение довольно ненадежно, так как будут 'совпадающие' файлы с временными метками ОС, которые отличаются на 1+ секунды, что, в свою очередь, вызывает разницу в 1 минуту, например: 05: 23: 59 + 1 секунда => 05:24]
  • для набора файлов с одинаковой меткой времени ОС предпочтение сортировки осуществляется по родительскому каталогу ({Products,Signal}) и затем по имени файла, оба в алфавитном порядке (что означает файлы в примере вывода с меткой времени ОС из 05:39 не отсортированы должным образом)

Образцы данных:

$ cat jan_files
-rw-r--r--. 1 ctlr sftg      1541 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg    191881 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg     23185 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDLYMNI.ZIP
-rw-r--r--. 1 ctlr sftg        30 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDLYMNI.SIG
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg      7726 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSEC1D.ZIP.11:39:35
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSEC1D.SIG.11:40:18
-rw-r--r--. 1 ctlr sftg    185206 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSUP1D.ZIP.11:40:38
-rw-r--r--. 1 ctlr sftg     11179 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSEC1D.ZIP.11:44:54
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSEC1D.SIG.11:45:37
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSUP1D.SIG.11:41:21
-rw-r--r--. 1 ctlr sftg    282086 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSUP1D.ZIP.11:45:59
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSUP1D.SIG.11:46:44

Общая идея состоит в том, чтобы вытянуть копию сортируемых полей в начало строки, с копия оригинальная строка, добавленная в конце; Как только мы выполним нужные сортировки, мы уберем «поля сортировки», и у нас останутся исходные строки в нужном порядке сортировки.

Вот одна комбинация awk/sort/awk:

awk  -F"[/.]" '{print $2,$9,$8" |"$0}' jan_files | \
sort -k5,5M -k6,6n -k7,7 -k8,9                   | \
awk  -F"|" '{print $2}'

Где:

  • первая awk команда использует двойные разделители (\ и .) и перепечатывает поля 2 (владелец / группа / отметка времени) и последние 2 поля ({Products,Signal} и основание / имя файла), за которым следует новый разделитель (|) и вся строка; это позволяет нам (более) легко сортировать по всем нужным полям и при этом сохранять целую строку без изменений ...
  • команда sort позволяет сортировать по месяцам, дням, ЧЧ: ММ, {Products,Signal} и имя файла; с соответствующими флагами, чтобы позволить нам сортировать согласно желаемому выводу
  • секунда awk использует наш новый разделитель (|), чтобы позволить нам убрать наши «поля сортировки» и отобразить оригинальную строку

Выполнение вышеприведенного примера файла данных

-rw-r--r--. 1 ctlr sftg      1541 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDAILY.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:23 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDAILY.SIG
-rw-r--r--. 1 ctlr sftg     23185 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GMFDLYMNI.ZIP
-rw-r--r--. 1 ctlr sftg        30 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GMFDLYMNI.SIG
-rw-r--r--. 1 ctlr sftg    191881 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Products/GNMDCONS.ZIP
-rw-r--r--. 1 ctlr sftg        29 Jan  2 05:39 /vdat/sfrdir/mkbs/daily/20200102/Signal/GNMDCONS.SIG
-rw-r--r--. 1 ctlr sftg      7726 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSEC1D.ZIP.11:39:35
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:32 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSEC1D.SIG.11:40:18
-rw-r--r--. 1 ctlr sftg    185206 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FHLSUP1D.ZIP.11:40:38
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FHLSUP1D.SIG.11:41:21
-rw-r--r--. 1 ctlr sftg     11179 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSEC1D.ZIP.11:44:54
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSEC1D.SIG.11:45:37
-rw-r--r--. 1 ctlr sftg    282086 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Products/FNMSUP1D.ZIP.11:45:59
-rw-r--r--. 1 ctlr sftg        29 Jan  2 06:33 /vdat/sfrdir/mkbs/daily/20200102/Signal/FNMSUP1D.SIG.11:46:44
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...