私はUbuntu 22を使用しており、別の場所に数値を含む迷惑な名前の大きなファイルツリーがあります。それは次のとおりです。
./2
./2/9
./2/10
./2/8
./1
./1/2
./1/1
./1/11
./11
./11/page 6
./11/page 05
./11/page 4
「ページ」のようなものを無視し、数値に基づいてソートして次のようにします。
./1/1
./1/2
./1/11
./2/8
./2/9
./2/10
./11/page 4
./11/page 05
./11/page 6
私はこれを試しましたが、sort -n
最初のレベルのディレクトリ名だけを見ても、期待どおりに機能しないようです。
$ find . -mindepth 1 -type d | sort -n
./1
./11
./2
「(数値の代わりに)各整数で並べ替える」の便利なオプションはありますか?
ベストアンサー1
sort -V
少なくとも例の単純さを考えると、これが欲しいと思います。
$ sort -V << EOF
./2
./2/9
./2/10
./2/8
./1
./1/2
./1/1
./1/11
./11
./11/page 6
./11/page 05
./11/page 4
EOF
./1
./1/1
./1/2
./1/11
./2
./2/8
./2/9
./2/10
./11
./11/page 4
./11/page 05
./11/page 6
1つの既知の注意:これは、文字列の「ページ」などのテキストを「無視」せずにソート順にのみ含まれます。 「行」と同じ番号を持つ他の項目がある場合、「行」項目は「ページ」項目の前にソートされます。
しかし、通常、この方法がうまくいかない場合編集する投稿を更新し、正しく解決されていないケースを表示するようにケースを更新してください。