Как очистить некоторые данные в CSV-файле с помощью скриптов Powershell и сохранить результат в виде нового CSV-файла? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть файл csv (employee.csv) из 3 столбцов, содержащий 'n' количество сведений о сотруднике, и в моем первом столбце у меня есть employeeid в формате 11_22$(contain integers and non integer values-string), и здесь я хочу удалить все специальные символы ия хочу оставить только 1122(only integers).

Во втором столбце у меня есть адрес их веб-сайта и он имеет формат www.website.com, и здесь я хочу заменить www на http, то есть мне нужно http.website.com.В моем третьем столбце у меня есть их dob в формате YYYY:MM:DD, и я хочу изменить его на DD:MM:YYYY формат.Наконец, я хочу сохранить / экспортировать результат в новый CSV-файл.Как я могу достичь всего этого с помощью сценариев PowerShell?

1 Ответ

0 голосов
/ 05 июня 2018

Хотя я понятия не имею, почему вы хотите, чтобы веб-сайты стали чем-то вроде «http.website.com» вместо «http://website.com',», вы можете сделать это, используя приведенный ниже код.

########################################################################
# your input file 'employees.csv" looks like this
########################################################################

"employeeid","website","dob"
"11_22$","www.website.com","2000:04:12"
"22_33$","www.stackoverflow.com","1990:04:12"
"33_44$","www.somothersite.org","1970:04:12"


########################################################################
# after running the code the new file 'newemployees.csv' looks like this
########################################################################

"employeeid","website","dob"
"1122","http.website.com","12:04:2000"
"2233","http.stackoverflow.com","12:04:1990"
"3344","http.somothersite.org","12:04:1970"



$newcsv = @()
Import-Csv -Path $PSScriptRoot\employees.csv | ForEach-Object {
    $newcsv += New-Object -TypeName PSObject -Property ([ordered]@{
        employeeid = $_.employeeid -replace '\D+', ''
        website = $_.website -replace 'www', 'http'
        dob = ([datetime]::ParseExact($_.dob, 'yyyy:MM:dd', [System.Globalization.CultureInfo]::InvariantCulture)).toString('dd:MM:yyyy')
    })
}
$newcsv | Export-Csv -Path $PSScriptRoot\newemployees.csv -Force -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...