linux - ユーティリティを使用してファイルの読み取りまたは出力順序(ソート)を設定する

linux - ユーティリティを使用してファイルの読み取りまたは出力順序(ソート)を設定する

次の問題があります。プログラムが間違った順序でファイルを読み取りますls

私はいくつかのオプションを試しましたが、LC_COLLATE私が探しているデフォルト設定と一致するオプションがないので、できることはもっとたくさんあるようです。

無効なシーケンスを生成するコマンドの例:

user@host: /home/user/Video $ mpv *.mkv

/home/user/Videoには150個のファイルがあります。以下は最初の12ファイルです。プログラムのコマンドは次のとおりですmpv *.mkv

TVSeriesName - 01.mkv
TVSeriesName - 02.mkv
TVSeriesName - 03.mkv
TVSeriesName - 04.mkv
TVSeriesName - 05.mkv
TVSeriesName - 06.mkv
TVSeriesName - 07.mkv
TVSeriesName - 08.mkv
TVSeriesName - 09.mkv
TVSeriesName - 10.mkv
TVSeriesName - 100.mkv
TVSeriesName - 101.mkv

前に0があっても、11を読む前に100を読みます。

理想的には、前にゼロがなくても正しい1〜150の順序で読み取る必要があります。

ranger私が望むのは、ファイルマネージャの基本順序に似た汎用ファイルの読み取り順序と並べ替え順序を持つことです。

例:

.1-hiddendir/
.2-hiddendir/
.a-hiddendir/
.b-hiddendir/
.C-hiddendir/
.d-hiddendir/
.E-hiddendir/
1-dir/
2-dir/
A-dir/
b-dir/
c-dir/
D-dir/
.1-dotfile
.2-dotfile
.a-dotfile
.b-dotfile
.C-dotfile
1-file
2-file
a-file
B-file
c-file

オペレーティングシステム:アーチ Linux,FS:外部4

環境設定やLinuxディストリビューションでこれを達成できますか?

ベストアンサー1

find . -maxdepth 1 -type f  -name '*.mkv' -print0 | sort -Vz | xargs -0r mpv

これはfind、現在のディレクトリで "*.mkv"に一致するすべてのファイル名のNUL区切りリストを出力するために使用されsortます-z。すべてのファイル名が表示されます。パラメーターのソート順序。--zero-terminated-V--version-sortxargs -0r mpvmpv

これは、名前にスペース、改行、またはシェルメタ文字を含むファイル名を含むすべてのファイル名に適用されます。

AFAIK、現在GNU sort、FreeBSDのみ、またはオプションをsortサポートしています。-z--zero-terminated

おすすめ記事