在 PowerShell 中将字符串拆分为多列

Posted

技术标签:

【中文标题】在 PowerShell 中将字符串拆分为多列【英文标题】:Split strings into multiple columns in PowerShell 【发布时间】:2021-12-14 10:12:15 【问题描述】:

我在 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

提前谢谢你。

【问题讨论】:

Import-CSV cmdlet 支持自定义标头和分隔符。 【参考方案1】:

字符串值backup:x:34:34:backup:/var/backups:/usr/sbin/nologin本身可以被认为是一个以:为分隔符的CSV记录,所以你可以使用ConvertFrom-Csv

PS ~> $string = 'backup:x:34:34:backup:/var/backups:/usr/sbin/nologin'
PS ~> $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

【讨论】:

感谢@mathias。但是在 Excel 中打开 csv 文件时,所有值都在一列中。

以上是关于在 PowerShell 中将字符串拆分为多列的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫数据框中将多列拆分为行

在pyspark中将字典列拆分为多列

在oracle中将一列数据拆分为多列

如何在雪花sql中将单列拆分为多列[重复]

如何在标准sql-大查询中将一列拆分为多列

在 Hive 中将单行列拆分为多列