Powershell Как объединить несколько строк в одну с запятой - PullRequest
2 голосов
/ 20 марта 2019

У меня очень длинный список с 3 символами в каждой строке, как это

K2D
K5K
D9D
ILO
K5U
T8K

Как я могу использовать powershell, чтобы объединить этот список в одну строку, разделенную запятой, как этот

K2D, K5K, D9D, ILO, K5U, T8K

Я могу добавить запятую в конце каждой строки, как показано ниже, но не знаю, как объединить их в одну строку.

$list = get-content "list.txt"

$result = "result.txt"

$comma = foreach ($line in $list){
         $begein = ""
         $end = ","
         $begin + $line + $end
}

SET-CONTENT $result -value $comma

Ответы [ 2 ]

4 голосов
/ 20 марта 2019

Попробуйте это -

"K2D
K5K
D9D
ILO
K5U
T8K" -replace ("`n", ",")

Вывод -

K2D,K5K,D9D,ILO,K5U,T8K

Это будет работать для динамических входов.Если вы читаете из текстового файла, вы можете использовать оператор -join, например, -

$list = get-content "list.txt"
$list -join (",") | Set-Content $result
3 голосов
/ 20 марта 2019

В другом подходе используется знание, что get-content возвращает отдельные строковые элементы для каждой строки:

(get-content -path $myFile) -join ', '

из, если ваш ввод уже является массивом:

$myArray -join ', '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...