次のファイルツリーが与えられた場合:
subdirFoo/2019-06-01-blah.ext
subdirFoo/2019-06-07-blah.ext
subdirFoo/2019-05-02-blah.ext
subdirBar/2019-06-03-blah.ext
subdirBar/2019-05-05-blah.ext
subdirBar/2019-05-13-blah.ext
このファイルを繰り返してパラメータとして渡したいのですが、somecommand
フルパスではなくファイル名でソートされた順序で繰り返したいと思います。
通常、globはアルファベット順にソートされますが、次の順序でソートされます。
subdirBar/2019-05-05-blah.ext
subdirBar/2019-05-13-blah.ext
subdirBar/2019-06-03-blah.ext
subdirFoo/2019-05-02-blah.ext
subdirFoo/2019-06-01-blah.ext
subdirFoo/2019-06-07-blah.ext
つまり、ソート時にサブディレクトリが考慮されますが、これは私が望むものではありません。
globをファイル名だけでソートしながら、コマンドがファイルを正しく参照できるようにループのサブディレクトリを維持するにはどうすればよいですか?つまり、ファイルパスが正しくないか欠落しているため、サブディレクトリの削除は機能しません。
つまり、次の順序でソートする必要があります。
subdirFoo/2019-05-02-blah.ext
subdirBar/2019-05-05-blah.ext
subdirBar/2019-05-13-blah.ext
subdirFoo/2019-06-01-blah.ext
subdirBar/2019-06-03-blah.ext
subdirFoo/2019-06-07-blah.ext
zshの解決策が好まれますが、bashやshも問題ありません。
ベストアンサー1
sort
フィールド区切り文字を/
2番目のフィールドに設定してソートする必要があります。