Powershell заменить импорт регулярных выражений в CSV-файл

#powershell

#powershell

Вопрос:

У меня есть CSV-файл с именем test.csv (C:testingtest.csv ) в этом формате:

 File Name,Location,Added (GMT),Created (GMT),Last Modified (GMT),File Size (Bytes),File Size,Extension,Incident Type
10-MB-Test (1).docx,\blahTest 3,10/8/2020 21:13,10/8/2020 19:33,10/8/2020 16:26,10723331,10.23 (MB),docx,low_data_discover
10-MB-Test (1).xlsx,\blah2Test 3,10/8/2020 21:14,10/8/2020 19:33,10/8/2020 16:25,9566567,9.12 (MB),xlsx,high_data_discover
1-MB-Test.docx,\blah3Test 3,10/8/2020 21:13,10/8/2020 19:33,10/8/2020 16:37,1045970,1021.46 (KB),docx,medium_data_discover
 

Я пытаюсь заменить конечные символы «» (если они существуют) для значений в столбце Location ничем, используя этот код Powershell:

 $file1 = import-csv -path "C:testingtest.csv" | % {$_."Location" -replace "\$",""} | Select-Object * | export-csv -NoTypeInformation "C:testingblah.csv"
 

Однако, когда я запускаю код, единственный результат, который я получаю, — это столбец с именем «Длина» с числовым значением. Можете ли вы помочь?

Ответ №1:

Вы только отправляете новую строку (обновленное местоположение) по конвейеру. Вы можете обновить каждое местоположение, а затем экспортировать его в конце.

 $file1 = import-csv -path "C:testingtest.csv"
$file1 | ForEach-Object {$_.location = $_.location -replace '\



}
$file1 | export-csv -NoTypeInformation "C:testingblah.csv"