2017-09-01 17 views
0

Fart.exeを使用して2つのキャリッジリターンを1行のキャリッジリターンに置き換えるためのcsvファイルがあります。まず、これは可能ですか?その場合、CSV内のテキストは、「CRLF」が実際の復帰である場合のように配置されます。Fart.exeは2行の改行を1行に置き換えます

,CRLF 
CRLF 

しかし、私はそれが2行目に余分な改行せずに、単にこれをしたい:私は以下やるだけでしたが、それは動作しませんと思っ

,CRLF 

CALL "C:\tmp\fart.exe" -C "C:\tmp\myfile.csv" ,\r\n\r\n ,\r\n 

、\ r \ n \ r \ nに変更する必要があることを知っておく必要があります。どのように私はこれを行うことができる任意のアイデア?ありがとう!

+0

[FARTを使用しない](https://superuser.com/a/1127064)! – Compo

+0

[類似の質問](https://stackoverflow.com/questions/6925730/problems-with-replacing-newline)powershellを使用しています。 – Compo

+2

あなたは空の行を削除することについて話しているようです。 – Squashman

答えて

2

Squashmanが示唆しているように、単に空の行を削除しようとしています。

これを行うためのサードパーティのツールは必要ありません。 FINDSTRを使って空行を破棄することができます。

findstr /v "^$" myFile.txt >myFile.txt.new 
move /y myFile.txt.new *. >nul 

ただし、これはすべての行がCRLFで終わる場合にのみ有効です。 LFで各行を終了するunix形式のファイルがある場合、それは動作しません。

より堅牢なオプションは、JREPL.BAT - a regular expression command line text processing utilityを使用することです。

jrepl "^$" "" /r 0 /f myFile.txt /o - 

コマンドをバッチスクリプト内に置く場合は、必ずCALL JREPLを使用してください。

FARTは一度に1行を処理し、CRLFはその行の一部であるとはみなされません。したがって、通常のFARTコマンドを使用してCRLFを削除することはできません。本当にFARTを使用する場合は、-Bバイナリモードを使用する必要があります。また、エスケープシーケンスのサポートを得るために-Cを使用する必要があります。

私がおならを使ったことがないので、私は確認することはできません - しかし、私は次はあなたが多くの連続空行を持っている場合は、あなたがおならコマンドを実行する必要があります

call fart -B -C myFile.txt "\r\n\r\n" "\r\n" 

を働くだろうと考えています変更がなくなるまで繰り返します。

関連する問題