ファイル名を一意に並べ替える

ファイル名を一意に並べ替える

解決策を検索しましたが、私の問題に対する答えが見つかりませんでした。

私のディレクトリには何千ものファイルがあります。ファイル名は次の形式です。

74687_1543944930857.txt
74687_1543945090451.txt
74687_1543945278047.txt
74687_1543945465203.txt
75282_1543964541818.txt
75282_1543964595523.txt
75308_1543941117138.txt
75308_1543941398049.txt
75308_1543941677699.txt
75308_1543942393359.txt

これらのファイル名では、前の数字_(下線)はユーザーIDを決定します。のようにはユーザーIDです75308_1543942393359.txt75308したがって、上記の例には3人のユーザーがいます。74687, 75282 and 75308

ディレクトリの総ユーザー数をどのように知ることができますか?

ベストアンサー1

出力をgrep次に渡しますsort

ls -1 | grep -oP "^\d+" | sort | uniq -c

これで、ユーザーIDとその数に基づいてデータをソートしました。

おすすめ記事