これらの参照を含むファイルフォルダ内でファイル参照の数をどのように取得できますか?

これらの参照を含むファイルフォルダ内でファイル参照の数をどのように取得できますか?

まあ、2つのフォルダがあります。単純化のためにplayerssumと呼びますitems。 items フォルダーには各アイテムのファイルが含まれ、 people フォルダーには各人物のファイルが含まれ、その人物が所有する動物への参照が含まれます。これが私が今まで持っているものです:

ls -1 ~/items | cut -d. -f1 | grep -R -f - ~/player

私が得たgrep構文ここ。私はそれを言おうとしています:

electric: 8
laser: 7
loltrail: 2

-c代わりにフラグを追加して、grep次のようにします。

Bob.txt: 0
Cathy.txt: 0
John.txt: 0
Patrick.txt: 1

一人当たりの商品の数ではなく、商品の総数を取得するにはどうすればよいですか?

これは、どれだけのプロジェクトが使用されているかを把握することです。店舗をクリックGarry's Mod用のプラグイン。

ベストアンサー1

GNUを使用して目的の結果を得る方法は次のとおりですawk

awk '
    BEGINFILE {
        if (FILENAME ~ "^animals/"  ||  FILENAME ~ "/animals/") {
                this_name = substr(FILENAME, index(FILENAME,"animals/")+length("animals/"))
                i = index(this_name, ".")
                if (i > 0) this_name = substr(this_name, 1, i-1)
                critter[++num] = this_name
                critter_count[num] = 0
                nextfile
        }
    }
    {
        for (i = 1; i <= num; i++) {
                if ($0 ~ critter[i]) critter_count[i]++
        }
    }
    END {
        for (i = 1; i <= num; i++) print critter[i] ": " critter_count[i]
    }
'  animals/*  people/*
  • 新しいファイル()を起動するときにBEGINFILE名前が、またはanimals/で始まることを確認してください/animals/。もしそうなら、animals/*./animals/*~/animals/*

    • 右部分文字列を抽出しますanimals/
    • 次に、1つを探し.、見つかったら、左側の部分文字列を抽出します。
    • この文字列(デフォルトのファイル名、削除されたディレクトリ、および拡張子)を配列critter[]に追加し、その文字列をcritter_count0に初期化します。

    ☛POSIX awkでは、およびはBEGINFILE使用nextfileできません。

  • そうでない場合(ファイルを見ている場合people)、動物名を繰り返してcritter一致する行数を数えます。
  • すべての入力に達した後、ENDファイル名から抽出された動物名animalsと各動物名がファイルに表示される頻度を報告しますpeople

これはディレクトリを再帰的に検索しませんpeople。質問に必要な説明は表示されません。

おすすめ記事