我是否可以在 Windows 上获取此 Perl 命令以不在 LibreOffice 中生成带有撇号的日期?

我是否可以在 Windows 上获取此 Perl 命令以不在 LibreOffice 中生成带有撇号的日期?

根据我得到的帮助这个问题,我有这个在 Windows 10 PowerShell 中运行的 Perl 命令:

ls |% { $_.Name } | perl -pe 's/(.)(.*)_(\d{4})(\d{2})(\d{2})_(\d+).jpg/\u$1$2,$3-$4-$5,$6,$&/' > filename.csv

目的是列出目录中所有具有预格式化文件名的文件,并创建一个 CSV 文件,这些文件名被分成单独的列。每个文件名都是收据的扫描件,文件名包含日期、费用和费用类型等信息。

文件名如下所示:

expense_name_20200212_300.jpg

运行上述 Perl 命令后,我在记事本、LibreOffice 或任何其他编辑器中打开文件,上述文件名将显示为:

expense_name,2020-02-12,300,expense_name_20200212_300.jpg

我不知道 Perl 命令的哪部分在日期中放置破折号,因为我对 Perl 一无所知,但这就是它的作用。

在大多数情况下,上述命令运行良好。它按预期创建了一个 CSV 文件。

但是,一个问题是,当我在 LibreOffice 中打开 CSV 文件时,日期不会接受任何日期格式。这是因为在每个日期的单元格中,日期后面都附加了一个撇号。我认为这是因为 LibreOffice 将日期字段解释为文本,并将其标记为文本,即使它全是数字。原始文件名中的格式为 YYYYMMDD,但在 CSV 中呈现为 YYYY-MM-DD。

我已经学会了如何按照说明删除该撇号此网页。但最好不要有那些额外的搜索和替换步骤。

有没有办法让上面的 Perl 命令创建一个 CSV 文件,其中 LibreOffice 将把日期字段识别为数字而不是附加撇号?

答案1

在 LibreOffice 中打开 CSV 文件应该会弹出文本导入屏幕。选择日期列并将其更改为Date (YMD)类型。

文本导入 - 字段

然后按“OK”以 Calc 电子表格形式打开。

相关内容