まあ、2つのフォルダがあります。単純化のためにplayers
sumと呼びます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_count
0に初期化します。
☛POSIX awkでは、およびは
BEGINFILE
使用nextfile
できません。- 右部分文字列を抽出します
- そうでない場合(ファイルを見ている場合
people
)、動物名を繰り返してcritter
一致する行数を数えます。 - すべての入力に達した後、
END
ファイル名から抽出された動物名animals
と各動物名がファイルに表示される頻度を報告しますpeople
。
これはディレクトリを再帰的に検索しませんpeople
。質問に必要な説明は表示されません。