Создайте подкаталоги и организуйте файлы по дате от имени файла

Кажется, что у grsecurity разработчиков были проблемы в прошлом убедительном Linus для принятия изменений в ядро. Проблемы, кажется:

  1. Отправляя гигантский блоб кода и не разбивая его в части
  2. Linus считает много изменений "безумным", который является, вероятно, способом Linus сказать, что он не работает с его планами относительно будущей разработки.

5
25.11.2013, 19:49
2 ответа

Ответ, исправленный для получения 25.11.2013 вместо 20131125

Если Ваш сценарий работает с a bash совместимая оболочка, самое легкое решение состоит в том, чтобы заменить

d=$(date -r "$x" +%Y-%m-%d)

с

d="${x:4:4}-${x:8:2}-${x:10:2}"

портативное решение с expr:

d=$(expr substr "$x" 5 4)-$(expr substr "$x" 9 2)-$(expr substr "$x" 11 2)

При необходимости только в 20 131 125 вместо 25.11.2013 как имя каталога Вы можете также

Решение с sed:

d=$(echo "$x" | sed 's/.*_\([0-9]*\)_.*/\1/')

sed команды заменяют имя файла числом между символами нижнего подчеркивания (=the дата).

Решение с awk:

d=$(echo "$x" | awk -F _ '{print $2}')

Решение с сокращением:

d=$(echo "$x" | cut -d_ -f 2')
3
27.01.2020, 20:38
  • 1
    @drewbenn спасибо за указывает на это - я исправил ответ. –  jofel 26.11.2013, 01:37

Можно использовать:

export LC_ALL=C
for x in *.JPG; do
  d=$(date -d $( cut -d"_" -f2 <<< ${x} ) +%Y-%m-%d )
  mkdir -p "$d"
  mv -- "$x" "$d/"
done
3
27.01.2020, 20:38

Теги

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