версии CSV У меня есть два CSV-файлы, как например:Powershell сравнивающие
1) Records.csv
Account,TransactionDate,Description,Amount
Acct1,1/1/2015,Shopping at Kohls,($35.00)
Acct1,1/1/2016,Shopping at Target,($25.22)
Acct1,1/1/2016,Shopping at Target,($60.00)
Acct2,4/5/2015,Subway,($9.12)
Acct2,1/1/2016,Jimmy Johns,($11.00)
Acct3,1/1/2016,Shopping at Kohls,($35.00)
Acct1,1/1/2016,Shopping at Kohls,$35.00
Acct1,1/1/2016,Shopping at Target,($60.00)
Acct2,4/5/2015,Subway,($9.12)
Acct2,1/1/2016,Jimmy Johns,($11.00)
Acct2,1/1/2016,Jimmy Johns,($11.00)
Acct3,1/1/2016,Shopping at Kohls,($35.00)
Acct3,1/1/2016,Kroger,($27.00)
и 2) rules.csv:
Description,Category,Topic
Shopping at Kohls,Misc,Clothing
Subway,Food,Restaurants
Jimmy Johns,Food,Restaurants
Shopping at Target,Misc,Home
Kroger,Food,Groceries
мне нужно добавить категорию и тему из rules.csv в файл records.csv, на основе соответствующего описания.
Когда я запускаю следующий код, он работает, но добавляет всю строку в rules.csv в одно поле. Мне нужно добавить его в отдельные столбцы.
$rules = import-csv "rules.CSV"
import-csv "Records.csv" | % {
$desc=$_.Description
$_ | Add-Member NoteProperty "Category" ($rules | select-string -SimpleMatch $desc) -PassThru
} | export-csv "output.csv" -notype
Результат выглядит так, но мне нужно разделить последний столбец.
"Account","TransactionDate","Description","Amount","Category"
"Acct1","1/1/2015","Shopping at Kohls","($35.00)","@{Description=Shopping at Kohls; Category=Misc; Topic=Clothing}"
"Acct1","1/1/2016","Shopping at Target","($25.22)","@{Description=Shopping at Target; Category=Misc; Topic=Home}"
"Acct1","1/1/2016","Shopping at Target","($60.00)","@{Description=Shopping at Target; Category=Misc; Topic=Home}"
"Acct2","4/5/2015","Subway","($9.12)","@{Description=Subway; Category=Food; Topic=Restaurants}"
"Acct2","1/1/2016","Jimmy Johns","($11.00)","@{Description=Jimmy Johns; Category=Food; Topic=Restaurants}"
"Acct3","1/1/2016","Shopping at Kohls","($35.00)","@{Description=Shopping at Kohls; Category=Misc; Topic=Clothing}"
"Acct1","1/1/2016","Shopping at Kohls","$35.00 ","@{Description=Shopping at Kohls; Category=Misc; Topic=Clothing}"
"Acct1","1/1/2016","Shopping at Target","($60.00)","@{Description=Shopping at Target; Category=Misc; Topic=Home}"
"Acct2","4/5/2015","Subway","($9.12)","@{Description=Subway; Category=Food; Topic=Restaurants}"
"Acct2","1/1/2016","Jimmy Johns","($11.00)","@{Description=Jimmy Johns; Category=Food; Topic=Restaurants}"
"Acct2","1/1/2016","Jimmy Johns","($11.00)","@{Description=Jimmy Johns; Category=Food; Topic=Restaurants}"
"Acct3","1/1/2016","Shopping at Kohls","($35.00)","@{Description=Shopping at Kohls; Category=Misc; Topic=Clothing}"
"Acct3","1/1/2016","Kroger","($27.00)","@{Description=Kroger; Category=Food; Topic=Groceries}"
Любой способ сделать это?
Вы должны _ "разделить последний столбец ,"_ как? Вы хотите, чтобы «Категория» и «Тема» были вытащены? 'Описание' выглядит уже неповрежденным и присутствующим, так что вы также можете предоставить несколько строк того, что вы ожидаете, на выходе, чтобы просто сохранить время и любую путаницу? :) – gravity
@ гравия спасибо. Да, мне нужно, чтобы категория и тема соответствовали описанию. Заголовками столбцов могут быть категории и темы. Я не хотел этого в этой записи массива, которую я показываю выше. Еще раз спасибо. –