1

Linuxボックスでシェルスクリプトの一部として実行されているWindowsファイルに問題があり、JavaまたはおそらくLinuxコマンドを使用してWindowsで作成されたファイルをLinuxファイルに「変換」できるかどうか疑問に思っていました。

例えば:

Windowsで作成したCSVファイルをアップロードすると、を使用しているサーバーでnano、ファイルがDOS形式で保存されていることがわかります。を使用してDOS形式とLinux形式を切り替えM-Dて、Linuxファイルとして保存できます。

私の質問は、Java(<-preference)またはLinuxコマンドを介してこれを達成できるかどうかです。

キャリッジリターンを削除しようとsed -i 's/{ctrl-v}{ctrl-m}//g' [file]しましたが、これは問題の解決にはなりません。

4

4 に答える 4

9

dos2unixパッケージからのunix2dosunixコマンド。dos2unix

于 2012-04-18T11:31:59.800 に答える
1

含まれているFileReaderでBufferedReaderを使用して、ファイルを1行ずつ取得し、その行で必要な操作を行うことができます(たとえば、正しい行末を持つ別のファイルにそれらをプッシュします。

File relFile = new File(".....");
BufferedReader read = new BufferedReader(new FileReader(relFile));
File targetFile = new File("....");
FileWriter fwri = new FileWriter(targetFile);
String line;
while ((line = read.readLine()) != null) {
    fwri.write(line+"\n"); // if you want the system line delimiter use the System property for that.
}
fwri.flush();
fwri.close();
于 2012-04-18T11:33:58.460 に答える
1

dos2unixユーティリティを利用できないが、vimまたはviがインストールされている場合

ファイルを開きます:

vi yourfile.csvまたvim yourfile.csv

ファイル形式をUNIXタイプに変更するには、次のようにします。

:setlocal ff=unix

次に、ファイルを保存します。

:wq!

参照: http: //vim.wikia.com/wiki/File_Format

于 2017-08-02T12:57:02.873 に答える
0

vimを使用してエンコード形式を確認します。

:set fileencoding

Windowsでは通常gb2312ですが、Linuxではutf-8です。

したがって、次の方法でLinux形式に変換することをお勧めします。

:set fileencoding=utf-8

そしてそれを保存します:wq!

于 2014-08-05T18:07:18.807 に答える