如何在 csv/文本文件上一次计算多个字符串或一个字符串,并使用 powershell 返回包含列表数据中的字符串的值

Posted

技术标签:

【中文标题】如何在 csv/文本文件上一次计算多个字符串或一个字符串,并使用 powershell 返回包含列表数据中的字符串的值【英文标题】:how to count multiple strings or one string at a time on a csv/text file and return the value including the string in tabulated data using powershell 【发布时间】:2022-01-14 03:08:14 【问题描述】:

以下是用逗号“,”分隔符从文本文件转换而来的 csv 输出:

           node       vserver   file-id connection-id session-id           open-mode share 
           ---------- --------- ------- ------------- -------------------- --------- ----- 
           node01 vserver101 91      396709148     15425954623650978960 r         Marketing
           node01 vserver101 96      396709148     15425954623650978960 rw        Marketing 
           node01 vserver101 109     396709149     15425954623650978960 rwd       Sales 
           node01 vserver101 110     396709149     15425954623650978960 r         Sales 
           node01 vserver101 119     396709149     15425954623650978960 rw        Sales 
           node01 vserver101 1       396710785     15425954623650979514 rw        HR 
           node01 vserver101 2       396710785     15425954623650979514 rwd       HR 
           node01 vserver101 19      396710785     15425954623650979514 r         HR 
           node01 vserver101 1       396714268     15425954623650980922 rw        Sales 
           node02 vserver102 437     1056740175    6208775036283845931  rw        Operations 
           node02 vserver102 669     1056740175    6208775036283845931  r         Operations 
           node02 vserver102 878     1056740175    6208775036283845931  rw        Operations 
           node02 vserver102 1435    1056740175    6208775036283845931  rw        Operations 
           node02 vserver102 1689    1056740175    6208775036283845931  r         Operations 
           14 entries were displayed.

我想要的输出是计算每个共享(例如 Marketing/Sales/HR/Operation)以及每个 Vserver(例如vserver101/102) 以表格格式。

这是我想要的输出应该是这样的:

分享 r rw rwd 人力资源 1 1 1

营销 1 1 0

销售额 1 2 1

操作 2 3 0

Vserver r rw rwd

Vserver101 3 4 2

Vserver102 2 3 0

我需要帮助。请提供示例脚本。非常感谢大家。

真诚的, 正在尝试编码:)

【问题讨论】:

第一部分使用Import-Csv,然后Group-Object -Property share,第二部分使用Group-Object -property vserver 请提供示例脚本。 请告诉我们使用了什么分隔符(如果它是一个 CSV 文件),因为现在我们看不到真正的结构是什么。在记事本中打开文件并从那里复制/粘贴,还是这是实际内容? idownvotedbecau.se/noattempt 欢迎来到 ***。请向我们展示您自己尝试过的内容。请注意,这不是脚本工厂。您需要自己编写脚本。如果您遇到现有问题和答案尚未涵盖的问题,您可以在此处发布您的minimal reproducible example,以便我们能够进一步帮助您。另见:How to ask a good question 【参考方案1】:
$csv = import-csv C:\ps\sample.csv
$csv| Group-Object share | Sort-Object Name | Select-Object Name, Count

【讨论】:

以上是关于如何在 csv/文本文件上一次计算多个字符串或一个字符串,并使用 powershell 返回包含列表数据中的字符串的值的主要内容,如果未能解决你的问题,请参考以下文章

在SSIS中导入CSV:截断错误

我们如何逐行打印字符并将其保存到 PLSQL 中的 csv 或文本文件

如何强制 Text::CSV 将数字存储为文本?

用C语言写CSV文件,如何写出多个工作表?

将数据变量从 matlab 保存到 csv 或文本文件

如何一次将多个 csv 文件读取到 Google Colab