Разделение строк на несколько столбцов в PowerShell

#powershell #powershell-2.0 #powershell-3.0 #powershell-4.0

Вопрос:

У меня есть данные в одном столбце в файле CSV, который выглядит следующим образом:

 backup:x:34:34:backup:/var/backups:/usr/sbin/nologin  

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

 USERNAME X UID GID DESCRIPTION HOMEDIR SHELL  ---------- backup x 34 34 backup /var/backups /usr/sbin/nologin  

Заранее спасибо.

Комментарии:

1. Командлет Import-CSV поддерживает пользовательские заголовки и разделители.

Ответ №1:

Строковое значение backup:x:34:34:backup:/var/backups:/usr/sbin/nologin само по себе может рассматриваться как запись CSV с : разделителями, поэтому вы можете использовать ConvertFrom-Csv :

 PS ~gt; $string = 'backup:x:34:34:backup:/var/backups:/usr/sbin/nologin' PS ~gt; $string |ConvertFrom-Csv -Delimiter ':' -Header USERNAME,X,UID,GID,DESCRIPTION,HOMEDIR,SHELL |Format-Table  USERNAME X UID GID DESCRIPTION HOMEDIR SHELL -------- - --- --- ----------- ------- ----- backup x 34 34 backup /var/backups /usr/sbin/nologin  

Комментарии:

1. Спасибо тебе за это @mathias. Но при открытии csv-файла в Excel все значения находятся в одном столбце.