私がデスクトップディレクトリにあり、名前が..のファイルとディレクトリの数を数えたいとしましょうexam
。また、文字列を含むファイルも計算する必要がありますexam
。要約すると、以下が必要です。
- 名前によるディレクトリ数の計算
exam
- 統計ファイル名と内容
exam
これまで私が試したことは次のとおりです。
ls -l | grep -r "exam" | wc -l
ただし、このコマンドは内容のあるファイルのみを計算しますexam
。複数のディレクトリ(、exam1
および複数の.txtファイル、、、)があり、それらを数えたい場合はどうすればよいですか?exam2
exam3
exam1.txt
exam2.txt
exam3.txt
ベストアンサー1
find
ディレクトリとディレクトリ以外の項目を異なる方法で処理するには、を使用してディレクトリとディレクトリ以外の項目の数をそれぞれ取得します。
find . -name '*exam*' \
\( \( -type d -exec echo directory \; \) -o \
\( ! -type d -exec grep -q -wF exam {} \; -exec echo file \; \) \) |
sort | uniq -c
名前に文字列を含む現在のディレクトリまたはその下のコンテンツを探しますexam
。モノがディレクトリの場合、directory
この文字列が出力されます。そうでない場合、そのものがディレクトリではなく、その内容に次のものが含まれている場合言葉 exam
file
を押してから文字列を出力します。最終sort
合計は、uniq -c
基準に一致するファイルとディレクトリをソートして計算します。
名前テストは、部分exam
文字列を含む名前と一致させることができますexample
。grep
ファイルを使用すると、-w
その可能性が高くなります。言葉部分文字列ではなく一致です。