首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用perl将文本文件导出为csv文件?

如何使用perl将文本文件导出为csv文件?
EN

Stack Overflow用户
提问于 2013-11-25 03:39:26
回答 2查看 2.2K关注 0票数 1

我有一个文本文件形式的系统清单信息报告,我想将它们导出为csv格式,如何在Perl中做到这一点?我是Perl的新手,刚刚开始学习。

下面是文本文件:

代码语言:javascript
复制
Hostname: computer1
OS:       Windows 2008 Server
MemoryGB: 4
CPUcount: 2
DiskSpace:80GB
Location: Cube1

Hostname: computer2
OS:       Windows 2012 Server
MemoryGB: 8
CPUcount: 2
DiskSpace:100GB
Location: Cube2

我想将它们导出为CSV文件,如下所示:

代码语言:javascript
复制
Hostname    OS                     MemoryGB    CPUcount    DiskSpace    Location
Computer1   Windows Server 2008       4           2           80GB       Cube1
Computer2   Windows Server 2012       8           2           100GB      Cube2

我该如何使用Perl来完成这项工作?谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2013-11-25 08:28:27

代码语言:javascript
复制
open ($fh, '<', $inputfile) || die "error reading $inputfile";
while(<$fh>) {
  chomp;
  $line = $_;
  $line =~ s/\s+/ /; # cleanup spaces
  $line =~ s/.*: //; # get rid of headers
  push (@lines, $line);
}
close($fh);

$string = join (",", @lines);
$string =~ s/,,/\n/;
# string has the output, without header
票数 0
EN

Stack Overflow用户

发布于 2013-11-25 13:05:03

如果字段的顺序是一致的,您可以使用以下awk:

代码语言:javascript
复制
awk -F': +' -v OFS="\t" 'BEGIN {
    print "Hostname", "OS", "MemoryGB", "CPUcount", "DiskSpace", "Location"
}
/:/ {printf "%s%c", $2, ($1 == "Location") ? "\n" : "\t"}
'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20179983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档