
ディレクトリにファイルのリストがある場合
ullman-000.pbm
ullman-001.pbm
...
ullman-098.pbm
ullman-099.pbm
ullman-1000.pbm
ullman-1001.pbm
ullman-1002.pbm
ullman-1003.pbm
ullman-1004.pbm
ullman-1005.pbm
ullman-1006.pbm
ullman-1007.pbm
ullman-1008.pbm
ullman-1009.pbm
ullman-100.pbm
ullman-1010.pbm
ullman-1011.pbm
ullman-1012.pbm
ullman-1013.pbm
ullman-1014.pbm
ullman-1015.pbm
ullman-1016.pbm
...
コマンドに入力ファイルとしてullman*.pbm
使用して渡すときは、次の順序でどのように作成できますか?convert ullman*.pbm ullman.pdf
ullman-000.pbm
ullman-001.pbm
...
ullman-098.pbm
ullman-099.pbm
ullman-100.pbm
...
ullman-999.pbm
ullman-1000.pbm
ullman-1001.pbm
ullman-1002.pbm
ullman-1003.pbm
ullman-1004.pbm
ullman-1005.pbm
ullman-1006.pbm
ullman-1007.pbm
ullman-1008.pbm
ullman-1009.pbm
ullman-1010.pbm
ullman-1011.pbm
ullman-1012.pbm
ullman-1013.pbm
ullman-1014.pbm
ullman-1015.pbm
ullman-1016.pbm
...
ありがとうございますか?
答え1
GNUは成功するsort
かもしれませんxargs
printf '%s\0' ullman*.pbm | sort -z -k2,2n -t'-' | xargs -0 convert
まず、呼び出さずにファイルを一覧表示して、これが機能していることを確認してください。convert
printf '%s\0' ullman*.pbm | sort -z -k2,2n -t'-' | xargs -0 printf '%s\n'
ullman-000.pbm
ullman-001.pbm
ullman-098.pbm
ullman-099.pbm
ullman-100.pbm
ullman-1000.pbm
...
しかし、
printf '%s\0' ullman*.pbm | xargs -0 printf '%s\n'
ullman-000.pbm
ullman-001.pbm
ullman-098.pbm
ullman-099.pbm
ullman-1000.pbm
..
..
答え2
1つの方法は、3桁の数字のファイル名を4桁の数字に変更し、ファイル名を0で埋めることです。すでにインストールされている場合perl-rename
(Ubuntuの場合はデフォルト)、次のことを試すことができます。
rename -n 's/-(\d{3}\.)/-0$1/' *.pbm
結果に満足したら、使用を中止してください-n
。
または他のオプションもチェックしてくださいファイル名の数字を固定長でパッド。