Perl 命令更改文件 EOL 并以相同名称保存文件

问题描述 投票:0回答:3

我在我的 debian 上使用这个 perl 命令来更改我的文件 EOL:

perl -p -e 's/\n/\r\n/' < ~/scripts/bite/EOL/*.csv > ~/scripts/bite/sent/samefilename.csv

每天“EOL”目录中都会有一个具有不同名称的新文件,并且该目录中始终只有 1 个文件,因此我使用“*”来获取其中的任何文件。 但我需要使用与我选择更改的文件相同的名称保存新文件,而无需手动在命令中输入文件名。最终这会进入我的定时任务,所以一切都会自动完成。

编辑:使用“unix2dos”解决了我的问题

perl terminal debian
3个回答
2
投票

Linux 有命令

unix2dos
dos2unix
用于将 eol 从 MS Windows/DOS 转换为 UNIX 格式。也许这是解决所描述问题的最简单的解决方案。


2
投票

我会使用

unix2dos
实用程序,但您也可以使用

perl -pe's/\n/\r\n/' -i file.csv

请参阅指定要处理到 Perl 单行代码的文件

你的程序和这个程序只能在unix系统上运行。


0
投票

嗯,每次运行都会添加一个

\r\n
。如果已经编码了怎么办?
perl -pe's/([^\015]|^)\012/$1\015\012/g' -i file.csv

© www.soinside.com 2019 - 2024. All rights reserved.