Как открыть первые 10 файлов в папке, начиная с определенной буквы или цифры?

В моей папке 10 000 файлов, и мне нужно просмотреть все их. Все они называются: A0001.png, A0002.png, A0003.png, … A0100.png, … A0999.png, .. A1000.png, … A09999.png, … A10000.png ,

Я хочу открыть их по десять за раз, посмотреть через них, закрыть их и открыть следующую десятку, но я все еще знаком с использованием терминала, так что я не уверен, как это сделать?

Когда я делаю:

open A000*.png

Это слишком много.

2 Solutions collect form web for “Как открыть первые 10 файлов в папке, начиная с определенной буквы или цифры?”

В zsh :

 open A000*.png([1,10]) 

для первых 10.

В bash вы всегда можете:

 files=(A000*.png) open "${a[@]:0:10}" 

Или в цикле:

 while ((${#files[@]})); do open "${files[@]:0:10}" files=("${files[@]:10}") done 

Это также будет работать в zsh , хотя в zsh вы можете сделать это в немного менее неудобном синтаксисе:

 while (($#files)) { open $files[1,10] files[1,10]=() } 

Другой вариант – использовать xargs :

 printf '%s\0' A000*.png | xargs -0n10 open 

Хотя это влияет на open stdin. zsh имеет функцию zargs с аналогичными функциями:

 autoload zargs # in ~/.zshrc zargs -n 10 A000*.png -- open 

Это позволяет вам определить, что open как функция, которая должна делать то, что вы хотите сделать с такими 10 файлами, как:

 open() { image_viewer $argv read -q '?continue? ' || return 255 } 

Используя петлю и захватывая пользовательский ввод, это может быть достигнуто:

 #!/bin/bash # Store all list of files you want with extension png arr=(./*.png) for ((i=0; i<${#arr[@]};)) do # -s: do not echo input character # -n 1: read only 1 character (separate with space) read -s -n 1 key for ((j=0; j<10; j++, i++)) do if [[ $key = "" ]]; then open "${arr[$i]}"; # <--- This is where you will open your file. fi done done 
  • Использование клавиш VI для редактирования команд оболочки в UNIX
  • Фильтрация результатов grep с помощью путей, содержащих папку1 / folder2, и обрезание текущего пути папки из набора результатов
  • Предоставление пользователю SFTP доступа только с доступом к подкаталогу вне дома?
  • exec -t недействителен
  • Как установить tar-файл (jhead) на компьютере Mac или Linux
  • Остановка бесконечного цикла из php-скрипта выполняется в терминале linux
  • Редактирование / удаление уведомления системы CLI
  • Где переменная окружения `$ TERM` установлена ​​в Debian Jessie для входа в консоль?
  • Как начать все сеансы оболочки в каталоге, отличном от $ HOME?
  • Не удается получить Phpmyadmin
  • Переименование файлов добавляет тире после четвертого и шестого символов
  • Соединения SSH, работающие в фоновом режиме, не выводятся, если несколько соединений были запущены одной и той же оболочкой
  • Linux и Unix - лучшая ОС в мире.