Скрипт Bash Сначала найдите и отсортируйте самые старые файлы двух типов - PullRequest
0 голосов
/ 23 октября 2019

В моем скрипте bash я использую find для фильтрации файлов двух типов, давайте Students.txt и teacher.txt .

Порядок важнее всегона первом месте, а затем сначала студентов1, а затем учителей1 , студентов2, а затем учителей2 , студентовN, а затем учителейN .

Следующий скрипт сортирует самый старыйпервый и самый последний длится. Тем не менее, пока что не рассматривает сначала учеников1, а затем учителей1, учеников2, а затем учителей2, учениковN, а затем учителейN. Что вы предлагаете?

#!/bin/bash

THE_PATH="THE_PATH"

while IFS='' read -r -d ' ' mtime && IFS='' read -r -d '' filename
do
  echo "processing file \"$filename\""
done < <(find "$THE_PATH" -maxdepth 1 -type f \( -iname "*students*.txt" -o -iname "*teachers*.txt" \) -printf '%T@ %p\0' | sort -zn)

Файлы, которые у меня есть:

Modified Time                   File Name
oct 22 2019                     student1010.txt
oct 22 2019                     teacher2000.txt
oct 21 2019                     teacher1000.txt
oct 15 2019                     teacher3000.txt
oct 15 2019                     student3030.txt
oct 20 2019                     student4040.txt

Вывод, который я хочу:

Modified Time                   File Name
oct 15 2019                     student3030.txt
oct 15 2019                     teacher3000.txt
oct 20 2019                     student4040.txt
oct 21 2019                     teacher1000.txt
oct 22 2019                     student1010.txt
oct 22 2019                     teacher2000.txt

Я имею в виду следующие решения НО , ожидая, если это будет достигнуто с приведенным выше примером:

  1. Создайте массив, используя команду find в качестве замены процесса дляцикл для файлов student.txt;
  2. Создайте еще один массив, используя команду find в качестве подстановки процесса для цикла для файлов teacher.txt;
  3. Наконец, создайте еще один массив из созданного вышедва массива при чтении одного элемента из каждого за раз.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...