1

数百のテキストファイルのフォルダーがあります。各ファイルの形式は同じです。たとえば、次の名前のファイルは次のようになりATextFile1.txtます。

ATextFile1.txt  09 Oct 2013
1
2
3
4
...

ファイルを読み取ってターミナルウィンドウに出力することになっている単純化されたPerlスクリプトがあります。

#!/usr/bin/Perl

use warnings;
use strict;

my $fileName = shift(@ARGV);

open(my $INFILE, "<:encoding(UTF-8)", $fileName) || die("Cannot open $fileName: $!.\n");

foreach (<$INFILE>){
   print("$_");  # Uses the newline character from the file
}

を生成する Windows バージョンのプログラムによって生成されたファイルに対してこのスクリプトを使用するATextFile1.txtと、出力は期待どおり (テキスト ファイルのコンテンツ) になりますが、このスクリプトを によって生成されたファイルに対して実行すると、ファイル生成プログラムの Mac バージョンでは、出力は次のようになります。

2016tFile1.txt  09 Oct 2013

いくつかのテストの後、最初の 4 文字が RegEx で表現できるもので上書きされたテキストの最初の行のみを出力しているよう/[0-9][0-9]16/です。Perl スクリプトで、出力ステートメントを に置き換えるとprint("\t$_");、次の行が STDOUT に出力されます。

2016    ATextFile1.txt  09 Oct 2013

これらの各ファイルは、標準のテキスト エディタを使用して正常に読み取ることができますが、何らかの理由で、私の Perl スクリプトはファイルから適切に読み書きできないようです。どんな助けでも大歓迎です(私が見逃していることが明らかであることを願っています)。前もって感謝します!

4

1 に答える 1