0

メモ帳または SAS でファイルを開くときに改行がない大きな json ファイル (250 Mb) があります。しかし、ワードパッドで開くと、正しい改行が表示されます。これは、jsonファイルがUNIXの改行を使用していることを意味していると思います。これは、notapadは読み取れませんが、ワードパッドは読み取ることができます。

ファイルを SAS にインポートする必要があります。これを行う 1 つの方法は、ファイルをワードパッドで開き、テキスト ファイルとして保存することです。これにより、SAS でファイルを読み取ることができるように、正しい改行が保持されることが期待されます。ファイルを読み込もうとしましたが、改行がないと、最初の観察しか得られず、プログラムに次の観察を見つけることができません。

ファイルを保存するためにワードパッドを取得しようとしましたが、おそらくファイルサイズが原因で、ワードパッドが毎回クラッシュします。また、powershell を使用してこれを実行しようとしましたが、一度開いたファイルを保存する方法がわかりません。ポイント アンド クリックで試してみると、ワードパッドがクラッシュするのを見て、動作する理由がわかりません。

このjsonファイルを修正する別の方法はありますか? 改行のUNIXコードを表示して、それをWindowsの改行に置き換える方法、またはその効果を得る方法はありますか?

編集:TERMSTR=LFファイル名とファイル内の両方にオプションを追加しようとしましたが、運がありません:

filename test "C:\path";
data datatest;
  infile test lrecl = 32000 truncover scanover TERMSTR=LF;
  input @'"Id":' ID $9.;
run;

ただし、ファイルのごく一部を手動で編集して改行を入れると、機能します。このTERMSTRオプションは私にはあまり役に立たないようです

編集2:使用して解決RECFM=F

data datatest;
  infile test lrecl = 42000 truncover scanover  RECFM=F ;
  input @'"Id":' ID $9.;
run; 

EDIT 3:結局のところ、問題は解決しませんでした。RECFM=Fすべてのレコードが固定長であることを意味しますが、そうではありません。そのため、データが混乱し、多くの情報がスキップされます。試してみRECFM=V(ariable)ましたが、これも機能していません。

4

2 に答える 2

0

Windowsを使用していると思いますので、試してください:

TYPE input_filename | MORE /P > output_filename

これにより、UNIX スタイルのテキスト ファイルが Windows/DOS のテキスト ファイルに置き換えられます。

于 2015-10-27T14:25:05.600 に答える
0

250M バイトは、1 つのレコードとして扱うには長すぎません。

data want ;
  infile json lrecl=250000000; *250 Mb ;
  input @'"Id":' ID :$9. @@;
run;
于 2015-10-27T14:50:52.627 に答える