私は一連のディレクトリに非常に多くのファイルを持っています。とても良いフォーマット各ディレクトリにいくつのファイルがあるかをリストします。
ディレクトリの順序は次のとおりです。親ディレクトリ名はA、B、... H、Iです。各ディレクトリの下には、001、002、... 007という名前のディレクトリが1〜7つあります。このディレクトリのファイル数を知りたいです。
私が望むのはこれです:
... C/003 122 C/004 45 C/005462 D/001 215 E/001 98 E/002 323 ...
ディレクトリ名と数の間のタブを考えています。数が左揃えか右揃えかは関係ありません。
私が自分で行うことは基本的に次のようになります。
(私のための*/* する エコ >>> $i" ls "$i" | 完了)>ファイル数
結果は次のとおりです。
... >>> F/002 30 30234 >>> F/003 120120 1322 >>>G/001 78 78 620 ...
明らかに悪くないようです。 ">>>"を交換してwc
削除wc -l
すると、はるかに優れています。とは別に各「レコード」には1行ではなく2行以上あります。
だから私に必要なのは、一部awk
またはsed
(またはどの- これらの2つのワイヤよりも2つのワイヤを接続するためのより簡単なツールはありますか? )2本の線と2本の線を1本の線につなぐ魔法。
しかし、より直接的な方法(シェルスクリプト、Perl、Python、一部本当に暗いsedとawkマジック)リストを「一度に」作成する方が良いでしょう...
ベストアンサー1
ファイル名に改行文字が含まれておらず、grep
-oオプションをサポートしているとします。
find [[:upper:]] -type f | grep -Eo '^./[0-9]{3}' | sort | uniq -c