質問: 'dos2unix'は `typescript`ファイルをunix形式に変換できません scriptコマンドを使用して現在のセッションを記録し、すべての情報をtypescriptファイルに保存しましたが、vimを使用して開いたとき、キャリッジが原因で^msが大量にありました戻り値。 dos2unix コマンドを使用してこのファイルをunix形式に変換しようとしましたが、変換できませんでした。それはこのエラーを出していました:dos2unix: binary symbol 0x1b found at line 2,dos2unix: skipping binary file typescript. それがなぜ起こっているのか私はただ知りたがっていました。 scriptがlf形式ではなくcr/lf形式で出力を生成するのはなぜですか?
回答: try (bufferedreader reader = new bufferedreader(new filereader("inputfile")); filewriter writer1 = new filewriter("outputfile")) { string line = reader.readline(); string cleantext = ""; while (line != null ) { if(!line.equalsignorecase("[begin typescript]")) { line = line.replaceall("\u001b\\[[\\d;]*[^\\d;]", ""); cleantext = cleantext + line.replaceall("\\p{cntrl}", "") + system.lineseparator(); } line = reader.readline(); } writer1.write(cleantext); } catch (ioexception e) { e.printstacktrace(); } } これを使用して、セッション記録typescriptファイルに保存された制御文字とvt100エスケープ文字を削除できます。 typescriptヘッダー「[begin typescript]」をスキップする条件を追加しました。各特殊文字を「」で置き換えています。