フォルダ内の全てのテキストファイルの改行コードをCRLFからLFへ
windowsで作ったテキストファイルは、改行コードを直さないといけないのだが。
#!/usr/local/bin/perl
use strict;
use Encode;
use warnings;
use utf8;
my $dir = shift; #対象ディレクトリ
$dir =~s[/?\Z][/];opendir DIR, $dir or die;
my @textfiles = grep{/\.txt/}readdir DIR;for (@textfiles){
open my $IN, '<', $dir.$_ or die;
my $data = do { local $/; <$IN> };
open my $OUT, '>', $dir.$_ or die;
$data =~s/\r//g;
print $OUT $data;
}
ほんとはbashでやりたかったのだが、ちょっと調べてもよく分かんなかったので。ワンライナーでもできそうだったけど、素人コーダとしてはこんなもんだろ。
こんな感じで動く。このファイルが、対象フォルダにあると仮定して、
perl this_script.pl ./
危ないのでバックアップとってから使ってください。