Используйте uniq -c
для генерации подсчетов из вашего файла:
4 1043481872
4 1043481873
3 1043481874
1 1043481875
Постройте график точек данных с помощью gnuplot
; соответствующий оператор plot
в конфигурации gnuplot
будет включать
plot … using 2:1
транспонирование порядка X/Y выходных данных из uniq
.
Попробуйте:
for movie in./*/*.mp4; do mv -- "${movie%/*}/folder.jpg" "${movie%.mp4}.jpg"; done
${movie%/*}
и ${movie%.mp4}
являются примерами удаления суффикса . ${movie%/*}
возвращает каталог, в котором находится файл фильма, а ${movie%.mp4}
возвращает имя файла фильма без расширения .mp4
.
Рассмотрим три каталога dir1
, dir2
и dir3
с файлами:
$ ls -1 */*
dir1/Animal Crackers.mp4
dir1/Animal Crackers.xml
dir1/folder.jpg
dir2/folder.jpg
dir2/Monkey Business.mp4
dir2/Monkey Business.xml
dir3/Duck Soup.mp4
dir3/Duck Soup.xml
dir3/folder.jpg
Теперь запустите нашу команду:
$ for movie in./*/*.mp4; do mv -- "${movie%/*}/folder.jpg" "${movie%.mp4}.jpg"; done
После запуска нашей команды файлы будут:
$ ls -1 */*
dir1/Animal Crackers.jpg
dir1/Animal Crackers.mp4
dir1/Animal Crackers.xml
dir2/Monkey Business.jpg
dir2/Monkey Business.mp4
dir2/Monkey Business.xml
dir3/Duck Soup.jpg
dir3/Duck Soup.mp4
dir3/Duck Soup.xml
Для тех, кто предпочитает, чтобы их команды располагались на нескольких строках:
for movie in./*/*.mp4
do
mv -- "${movie%/*}/folder.jpg" "${movie%.mp4}.jpg"
done
find. -type f -name "*.mp4" -execdir bash -c ' [[ -f folder.jpg ]] && mv -v folder.jpg "$(basename {}.mp4).jpg"' \;