【发布时间】:2009-09-29 20:02:29
【问题描述】:
我正在编写一个 Perl 脚本来运行并获取各种数据元素,例如:
1253592000
1253678400 86400 6183.000000
1253764800 86400 4486.000000
1253851200 36.000000 86400 10669.000000
1253937600 0.000000 86400 9126.000000
1254024000 0.000000 86400 2930.000000
1254110400 0.000000 86400 2895.000000
1254196800 0.000000 8828.000000
我可以抓取这个文本文件的每一行没有问题。
我正在使用正则表达式来获取每个字段。一旦我将行放入变量中,即 $line - 我如何获取每个字段并将它们放入自己的变量中,即使它们具有不同的分隔符?
【问题讨论】:
-
您能否更具体地了解您的分隔符是什么?
-
@Paul:这就是问题所在。此输出由应用程序 (splunk) 生成。我无法设置分隔符,它们似乎只是每列之间的两个空格字符 - 但有空格超出了那个范围。
-
@Greg:这看起来根本不像一个“分隔”文件。这些是固定宽度的列。下面 FM 的解决方案确实是解析这个的最干净的方法。
-
@Paul - 好的。谢谢。我总是指任何被某物隔开的东西,定界的。但这更有意义。
-
我不确定我是否同意,一个很简单,这个意味着固定宽度格式用于数据库或更复杂的东西。
标签: perl fixed-width