2017-05-20 14 views
-5

仕事でPowershellを使わなければならないので、私は立ち往生しています。私は以下のコードと結果を添付しました。各行の各単語の出現をカウントするには?

$data = Get-Content "/Users/mikeshobes/Documents/Powershell/nfl.csv" 

write-host $data.count total lines read from file 
foreach ($line in $data) 
{ 
    write-host $line 
} 

13 total lines read from file 
1,Tom Brady,NE,QB,93,142,65.5,47.3,"1,137",8,379,7,3,55,38.7,48,17,3,9,97.7 
2,Matt Ryan,ATL,QB,70,98,71.4,32.7,"1,014",10.3,338,9,0,54,55.1,73T,13,2,8,135.3 
3,Aaron Rodgers,GB,QB,80,128,62.5,42.7,"1,004",7.8,334.7,9,2,53,41.4,42T,17,1,10,103.8 
4,Ben Roethlisberger,PIT,QB,64,96,66.7,32,735,7.7,245,3,4,35,36.5,62T,8,3,2,82.6 
5,Russell Wilson,SEA,QB,40,60,66.7,30,449,7.5,224.5,4,2,22,36.7,42,5,2,6,97.2 
6,Dak Prescott,DAL,QB,24,38,63.2,38,302,7.9,302,3,1,16,42.1,40T,3,1,2,103.2 
7,Eli Manning,NYG,QB,23,44,52.3,44,299,6.8,299,1,1,12,27.3,51,3,2,2,72.1 
8,Matt Moore,MIA,QB,29,36,80.6,36,289,8,289,1,1,16,44.4,37,3,0,5,97.8 
9,Matthew Stafford,DET,QB,18,32,56.3,32,205,6.4,205,0,0,10,31.3,30,3,0,3,75.7 
10,Alex Smith,KC,QB,20,34,58.8,34,172,5.1,172,1,1,9,26.5,24,3,0,1,69.7 
11,Brock Osweiler,HOU,QB,14,25,56,25,168,6.7,168,1,0,9,36,38,1,0,0,90.1 
12,Connor Cook,OAK,QB,18,45,40,45,161,3.6,161,1,3,11,24.4,20,1,0,3,30 
13,Julian Edelman,NE,WR,0,1,0,0.3,0,0,0,0,0,0,0,--,0,0,0,39.6 
+1

[SO]スクリプトの書き込みサービスではありません。助けを得るためには、まず独自のコーディング作業を示す必要があります。 'Get-Content'、' ForEach'、 'Measure-Object'を使って' Get-Help'を見てみましょう – LotPings

+1

サンプルが与えられたときに期待される結果は?あなたのコードには、ファイルの各行をスクリーンに書き込む以外は何も見えません。他に何か試しましたか?あなたは何を単語として考えていますか? – Matt

答えて

0

あなたが取得したいどのような場合は最初のあなたは言葉で行を分割する必要があり、行のすべての単語は、その行にある倍の量である、その後倍の量を取得しますその言葉はその行にある。

私は、コードのスニペットが良いそれを説明すると思う:

For ($i = 0; $i -lt $Data.Length; $i++) { 
    $Line = $Data[$i] 
    Foreach ($Word in $Line.Split(' ,')) { 
     Write-Host ('Line {0} contains the word: "{1}" {2} time(s)' -f ($i + 1), $Word, (($Line -split $Word).Count-1)) 
    } 
}