2015-03-04 3 views
-2

У меня есть список файлов, которые я хочу сортировать по дате, а затем переименовать их в файл1, file2, filen, где file1 является самым старым, а filen - самым новым.Лучший способ сортировки и переименования файлов из командной строки osx

Вроде бы, как трубопровод сортированный выход от ls до mv, но я хотел бы знать, какие лучшие практики будут для этого.

ответ

0

Это будет выглядеть примерно так, но я бы проверил его на COPY ваших файлов в каталоге самостоятельно. Если/когда он работает, удалить слово echo в третьем к последней строке, потому что на данный момент, это только показывает, что он будет делать, ничего не делая:

#!/bin/bash 
i=1 
while IFS=$'\n' read f; do 
    # Get file creation date through mdls 
    creation=$(mdls -raw -name kMDItemFSCreationDate "$f") 

    # Convert that to seconds for sorting 
    epoch=$(date -j -f '%Y-%m-%d %H:%M:%S %z' "$creation" +%s) 

    # And send on to "sort" along with the filename 
    echo $epoch:$f 
done < filelist.txt | sort | while IFS=":" read d f; do 
    echo mv "$f" file$i 
    ((i++)) 
done 

Это предполагает ваш список файлов хранятся в файл под названием filelist.txt

Смежные вопросы