ls 出力の引用中に問題が発生しました。

ls 出力の引用中に問題が発生しました。

いくつかのpngファイルをpdfにマージしたいです。注文する

convert *png out.pdf

動作しますが、順序が間違っています。それは明らかです

ls -v *png

私が望む順序が与えられるので、その出力を変換に渡したいと思います。

頑張りました

convert `ls -v *png` out.pdf

ただし、ファイル名にスペースと角かっこが含まれているため、機能しません。

ls二重引用符でファイル名を設定するように指示します。

convert `ls -vQ *png` out.pdf

交換時に引用符が削除されたように見えるため、機能しません。

どうですか?

ベストアンサー1

sort同様の自然なソートバージョンを提供する最新のGNUベースのシステムがある場合は、-Vそれを使用してソートして結果を配列として読み取ることができます。

while read -rd '' f; do 
  files+=("$f")
done < <(find . -maxdepth 1 -name '*png' -print0 | sort -zV)

convertこれにより、次のコマンドで配列を拡張できます。

convert "${files[@]}" out.pdf

おすすめ記事