私はCSVを持っています。特定の列では、特定の文字列が見つかる行の数を数えたいと思います。CSV列のフィールドを条件付きで数える方法
$list = 'test'
$tmpFiltre2 = 'c:\test.csv'
Import-Csv $tmpFiltre2 -Delimiter "," | Where-Object {
$_.msg -and $list -like $_.msg
} | group msg -NoElement
私は、エラーメッセージが最初に表示され、正しい結果に終わる:私はmsg
列が含まれていますすべての可能な値)
がリストされていない私は、変数内の文字列のリストを配置しています指定されたワイルドカード文字のパターンは有効ではありません:[120]基板℃で
:\するMyScript.ps1:134文字:70
一部フィールドCOL内の角括弧を有しますumn。この
msg,Personn test,bill 120 test,eli test test,eli [1] test,bill [120] board,bill alarm [1],Jo
よう
CSVファイルを見出力は次のようになります。4行、少なくとも一度は、文字列「test」を含むそれらのそれぞれがあるので
test,4
。
_Iを試すには、MSG列があなたをcontain_するすべての可能な値はいずれもリストされていないリストされていません。いくつかの例を示してください。おそらく 'のようなもの 'はこれのための理想的な演算子ではありません。 – Matt
これを確実にするために、サンプル出力を見る必要があります。私はあなたの行の関係を理解していません。あなたが今やっているのは、いくつかのレコードを除外しているだけで、私は完全に理解していません。あなたのカウントは残りのレコードごとに1になります。そのファイルの "120テスト"レコードの数を知りたいですか? – Matt