0
'Column1'열 아래에 'input'을 하위 행으로 포함하고 있지만 연속 된 형식이 아닌 많은 행이 있습니다. 이 유형이 발생할 때마다 동일한 행의 다른 열에 'some data'값을 넣고 싶습니다. 이렇게해야합니다. CSV 파일 데이터 조작
Column1 Column2
This function takes input.
Other value don't care
String as input old_data
Column1 Column2
This function takes input. new_data
Other value don't care
String as input old_data, new_data
열이 단순히 데이터를 추가해야하지만 이미 일부 old_data을 포함하는 경우, 그것은 new_data는 쉼표 (,)로 구분 추가해야 비어있는 경우
. PowerShell 또는 다른 방법을 사용하여이 작업을 자동화 할 수있는 방법이 있습니까?수정 도움을 주시면 코드를 수정하여 다음과 같이 표시됩니다. column3의 값에 'input'이 포함되어있는 경우 5 번 열에 이미 데이터 (단어 문자 또는 ',')가 있는지 확인했습니다. if 문에는 문제가 있습니다.
$path = "d:\Book.csv"
$data = Import-Csv $path
$check = "ACCESS"
$new_value = "access"
$data | ForEach-Object {
if($_.Column3 -match 'ACCESS'){
if($_.Column5.Trim() -eq "") {
$_.Column5 = $newvalue
} elseif ($_.Column5 -match [\w,]) {
$_.Column5 += "; $newvalue"
}
}
}
$data | Export-Csv d:\Book11.csv -NoTypeInformation
감사 :
귀하의 CSV 파일이 같이 표시됩니다. 나는 한 가지 의심이있다. 정규 표현식에서 ':: Escape'의 목적은 무엇입니까? 나는 그것을 찾았지만 찾을 수 없었다. –
Export-Csv : 'InputObject'매개 변수가 null이므로 바인딩 할 수 없습니다. D : \ BTP \ manipulate.ps1 : 26 char : 19 + $ data | 내보내기-CSV <<<< D : \ Book11.csv -NoTypeInformation + CategoryInfo : InvalidData (:) [내보내기-CSV, ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed, Microsoft.PowerShell.Commands.ExportCsvCo mmand –
'-match '는 문자열이 정규식 패턴과 일치하는지 검사하는 연산자입니다. 특정 텍스트와 일치하기를 원하기 때문에 '와 같은 특수 문자를 이스케이프 처리해야합니다.() \ [] {} +?'등.'$ data | export-csv'를 입력하면'$ data'는 비어 있습니다. 이것은 아마도 처음부터 가져온 적이 없다는 뜻입니다. 샘플이 작동합니다. '$ path' 변수를 파일로 변경하고'$ path ='및'$ data = import'로 시작하는 줄의 주석 처리를 제거하십시오. –