特定の文字列を含むファイルとフォルダの数の計算

特定の文字列を含むファイルとフォルダの数の計算

私がデスクトップディレクトリにあり、名前が..のファイルとディレクトリの数を数えたいとしましょうexam。また、文字列を含むファイルも計算する必要がありますexam。要約すると、以下が必要です。

  1. 名前によるディレクトリ数の計算exam
  2. 統計ファイル名と内容exam

これまで私が試したことは次のとおりです。

ls -l | grep -r "exam" | wc -l 

ただし、このコマンドは内容のあるファイルのみを計算しますexam。複数のディレクトリ(、exam1および複数の.txtファイル、、、)があり、それらを数えたい場合はどうすればよいですか?exam2exam3exam1.txtexam2.txtexam3.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この文字列が出力されます。そうでない場合、そのものがディレクトリではなく、その内容に次のものが含まれている場合言葉 examfileを押してから文字列を出力します。最終sort合計は、uniq -c基準に一致するファイルとディレクトリをソートして計算します。

名前テストは、部分exam文字列を含む名前と一致させることができますexamplegrepファイルを使用すると、-wその可能性が高くなります。言葉部分文字列ではなく一致です。

おすすめ記事