список файлов с определенной датой и запись в другой файл на Perl

Для последовательных устройств вы должны найти их имена по топологии в /dev/serial/by-path/, поэтому, если вы используете те же концентраторы USB и порты, они должны оставаться постоянными. Например:

ls -l /dev/serial/by-path/pci-0000:04:00.0-usb-0:2.1.1:1.0-port0
... /dev/serial/by-path/pci-0000:04:00.0-usb-0:2.1.1:1.0-port0 ->../../ttyUSB0

Точно так же вы должны найти устройства по имени, иногда включая серийный номер, в разделе /dev/serial/by-id/, например:

 ls -l /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A5771WOA-if00-port0
... /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A5771WOA-if00-port0 ->../../ttyUSB0
2
02.07.2018, 14:20
1 ответ

Чтобы сравнить временные метки файла (предположительно время модификации ), вам необходимо stat()сравнить каждый файл и сравнить соответствующий год, месяц и день. Вот пример жесткого -кода фильтра для 2018 -06 -29:

next unless $file =~ /DTA$/;
my $fullpath = $dir. "/". $file;
my $wantedyear=2018;
my $wantedmonth=5; ## zero-based
my $wantedday=29;
my $mtime=(stat $fullpath)[9];
my $fileyear=(localtime($mtime))[5] + 1900;
next unless $fileyear == $wantedyear;
my $filemonth=(localtime($mtime))[4];
next unless $filemonth == $wantedmonth;
my $fileday=(localtime($mtime))[3];
next unless $fileday == $wantedday;
1
27.01.2020, 22:17

Теги

Похожие вопросы