Bashスクリプトを作成していますが、次のように配列を作成する必要があります。最新の画像ファイル10個(最新のものから最も古いものまで)現在ディレクトリにあります。
"画像ファイル"は.jpg
または.png
。いくつかの特定の画像タイプのみをサポートするだけで、これを正規表現(たとえば)として表すこともできます"\.(jpg|png)$"
。
私の質問は、たとえば、これを実行しようとすると、$list=(ls -1t *.jpg *.png | head -10)
各ファイル名が配列の別々の要素になるのではなく、結果ファイルのリストが何らかの方法で1つの要素になるということです。
また、$list=(find -E . -iregex ".*(jpg|png)" -maxdepth 1 -type f | head -10)
find は各./
ファイルの前に配置されているようですがsed
。find
$list
ベストアンサー1
正しい構文は次のとおりです。
list=($(ls -t *.jpg *.png | head -10))
echo First element: ${list[0]}
echo Last element: ${list[9]}
ただし、この回避策はファイル名にスペース文字(または通常はスペース)が含まれている場合に問題を引き起こします。