
フォルダー内のすべてのファイルを検索して一覧表示する find コマンドを以下に示します。ファイルはアルファベット順に一覧表示されますが、すべてのファイルを番号パターンで一覧表示したいです。「-name」の代わりに「-number」を使用すると、機能しません。
find . -type f -name '*'
I100001093
I200001093
I300001093
XB00001093
I100001094
I200001094
I300001094
XB00001094
I100001095
I200001095
I300001095
XB00001095
番号順にリストするための正しいコマンドを誰か教えていただけませんか。
答え1
I
などの部分をどのようにX
処理するかに応じて、次のようなコマンドを使用できる場合がありますsort
。
find . -type f | sort -n
それが希望する並べ替え順序でない場合は、より詳細な情報を提供する必要があります (そして理想的には、例から望ましい出力を示してください)。
名前の先頭をグループ化したい場合は、並べ替えるキー フィールドを指定できます。find からの出力は、./{id}
次の 2 つの文字が (一見) まとめて関連している状態で始まるため、並べ替えキーを指定して行の 5 番目の文字から並べ替えを開始できます。
find . -type f | sort -n -k 1.5
-k
sortでは、ソートするキーを指定できます。ここでは最初のフィールドでソートしますが、5番目の文字から始めて-n
数値順にソートします。
現在のディレクトリのみが必要な場合は、-maxdepth
次のように使用できます。
find . -maxdepth 1 -type f | sort -n -k 1.5
ポータブルにしたい場合:
find . -path '*/*/*' -prune -o -type f | sort -n -k 1.5