Создание дерева каталогов на основе имени файла

Попробуйте sed, например:

cat file | sed 's/[0-1][0-9]\/[0-3][0-9]\/\([12][0-9][0-9][0-9]\)/\1/g' > newfile

, который прочитает ваш файл с именем file и запишет результаты в новый файл newfile (при необходимости замените ).

Если вы хотите собрать количество лет, вы можете сделать что-то вроде

cat file | sed 's/[0-1][0-9]\/[0-3][0-9]\/\([12][0-9][0-9][0-9]\)/\1/g' | tr ' ' \\n | grep . | sort -nu
1
14.04.2019, 12:48
1 ответ

Попробуйте:

find. -maxdepth 1 -type f -exec bash -c '
    animal=${1%% *}; 
    year=${1#* }; year=${year% *};
    mkdir -p "${animal//[][]}/${year/ / - }" && mv "$animal $year"'*' "${animal//[][]}/${year/ / - }/"
' _ {} \; 2> /dev/null

результат :

$ tree
.
├── Lion
│   ├── 2015 - Africa
│   │   ├── [Lion] 2015 Africa Book.pdf
│   │   └── [Lion] 2015 Africa Magazine.pdf
│   ├── 2015 - Asia
│   │   ├── [Lion] 2015 Asia Book.pdf
│   │   └── [Lion] 2015 Asia Magazine.pdf
│   ├── 2016 - Africa
│   │   ├── [Lion] 2016 Africa Book.pdf
│   │   └── [Lion] 2016 Africa Magazine.pdf
│   └── 2016 - Asia
│       ├── [Lion] 2016 Asia Book.pdf
│       └── [Lion] 2016 Asia Magazine.pdf
└── Tiger
    ├── 2015 - Asia
    │   ├── [Tiger] 2015 Asia Book.pdf
    │   └── [Tiger] 2015 Asia Magazine.pdf
    ├── 2016 - Africa
    │   ├── [Tiger] 2016 Africa Book.pdf
    │   └── [Tiger] 2016 Africa Magazine.pdf
    └── 2016 - Asia
        ├── [Tiger] 2016 Asia Book.pdf
        └── [Tiger] 2016 Asia Magazine.pdf
0
28.01.2020, 00:15

Теги

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