在 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 中将字符串拆分为多列的主要内容,如果未能解决你的问题,请参考以下文章