サブフォルダとフラットフォルダの for ループ 1 つ

サブフォルダとフラットフォルダの for ループ 1 つ

フォルダ内のファイルを処理するためにスクリプトはこのコードを使用していますが、サブフォルダでのみ機能します。

if [ -d "$1" ]; then for file in "${1%/}/"*/*(*.mkv|*.mp4|*.avi); do 

フラットフォルダを使用するために削除できることを知っていますが、/*フラットフォルダ(サブフォルダなし)とサブフォルダを含むフォルダを処理するためのよりきれいな方法を探しています。

forループには多くのコードがあるので、次に頼る解決策は望ましくありません。find

ベストアンサー1

具体的に試してglobstarください。extglobbash

#!/usr/bin/env bash

shopt -s globstar extglob

if [[ -d $1 ]]; then
  for file in "$1"/**/*.@(mkv|mp4|avi); do
  :
  done
fi 

おすすめ記事