sedコマンドを使用して、Linux上のCSVファイルの^ M \ n部分のスペースを置き換えたいのですが...
私はそれを使用しましたが、sed 's/\n/ /g'
\だけを置き換え、他の部分は置き換えません...
もう少し説明するために、次のクエリを使用します。
| sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > file.csv
クエリ結果はcsvファイルとして収集されます。ただし、csvファイルにこれらの文字を表示できます\n
。削除したいです。だから...それに応じてsedコマンドを変更する必要があります...代わりに\n
空白文字をインポートする必要があります...
答え1
そうした後も私はこの問題に直面しましたdos2unix
。以下のコードでこの問題を解決できました。
sed -i "s/\r/ /g" <fileName>
^M
はいctrl+r
、\r
ファイルのスペースに置き換えてください。
答え2
ファイルのDOS行の末尾をスペースに置き換えるには、次のようにしますfile
。
dos2unix file
tr '\n' ' ' file >newfile
まず、ファイルをUnixテキストファイルに変換してから、各改行文字を空白に置き換えます。結果は新しいファイルに書き込まれますnewfile
。
ワンステップ(修正なしfile
):
dos2unix <file | tr '\n' ' ' >newfile
やや安全ではありません(削除するため)みんなDOS行の終わりの一部ではない場合でも、ファイルにキャリッジが返されます(file
変更されていません)。
tr -d '\r' <file | tr '\n' ' ' >newfile