使用perl将文件拆分为纯文本

时间:2020-05-26 14:03:12

标签: perl

我有一个带有偏移量的平面文件,例如第1行:char 1-3 = ID,4-19 =用户名,20-40 =姓氏,等等...

创建一个perl脚本以阅读此内容的最佳方法是什么?有没有什么办法可以使它基于不同的偏移量组而变得灵活?谢谢!

1 个答案:

答案 0 :(得分:1)

如果位置/长度以Unicode代码点表示:

# Use :encoding(UTF-8) on the file handle.

my @fields = unpack('A3 A16 A21', $decoded_line);

如果位置/长度以字节为单位

use Encode qw( decode );

sub trim_end(_) { $_[0] =~ s/\s+\z//r }

# Use :raw on the file handle.

my @fields =
   map trim_end(decode("UTF-8", $_)),
      unpack('a3 a16 a21', $encoded_line);

在两种情况下,都会修剪尾随空白。

相关问题