特定の文字または数字で始まるフォルダの最初の10個のファイルを開く方法は?

特定の文字または数字で始まるフォルダの最初の10個のファイルを開く方法は?

私のフォルダには10,000個のファイルがあり、すべてを確認する必要があります。すべてA0001.png、A0002.png、A0003.png、...A0100.png、...A0999.png、...A1000.png、...A09999.png、...A10000と呼ばれます。 png。

10個ずつ開いてブラウズして閉じ、次の10個を開けたいのですが、まだターミナルの使い方が慣れている段階なので、どうすればいいのかわかりませんね。

私がするとき:

open A000*.png

あまりオープン

ベストアンサー1

存在する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標準入力に影響を与えます。同様の特性を持つ関数がzshあります。zargs

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

openこれにより、対応する10個のファイルで必要なすべての操作を実行する関数として定義できます。たとえば、次のようになります。

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

おすすめ記事