2

次のような複数のヘッダーを持つcsvドキュメントがあります。

「日付」、「RQ」、「PM」、「SME」、「アクティビティ」、「ステータスコード」
"2/2/12"、 "6886"、 "D_WV"、 "John Smith"、 "Recent"、 "2004"

1行に1つずつ、ステータスコードの単なるリストであるテキストドキュメント。

テキストファイルのステータスコードを含むCSVからすべての行を削除する方法を理解しようとしています。

これまで私は使用してみました:

$m = gc textfile.txt
Select-String data.csv -Pattern $m -NotMatch

しかし、それは私に次のような余分なデータを残します

data.csv:1 "日付"、 "RQ"、 "PM"、 "SME"、 "アクティビティ"、"ステータスコード"
data.csv:2 "2/2/12"、 "6886"、 "D_WV"、 "John Smith"、 "Recent"、 "2004"

私も試しました:

gc data.csv | ? { $_ -notlike $m }

これは適切なフォーマットを使用しますが、値を削除する必要はありません。どんな助けでも大歓迎です。

4

2 に答える 2

1

誤検知を回避するための別のアプローチをお勧めします。

$m = Get-Content textfile.txt
Import-Csv data.csv `
  | ? { $m -notcontains $_."Status code" } `
  | Export-Csv output.csv -NoTypeInformation
于 2013-03-22T20:53:59.703 に答える
1

select-stringのmatchinfoオブジェクトは、混乱を招く可能性があります。これはあなたが必要とすることをしますか?

$m = gc textfile.txt
select-string data.csv -pattern $m -notmatch |
select -expand line
于 2013-03-22T20:34:26.030 に答える