2016-06-28 25 views
1

改行でフォーマットされた一連のテキストファイルを改行(\ n)で区切られた単一の行に変換する必要があります。例えば:私はこれが見えるようにしたいどのようなBash改行を連結して改行する

This is an example text file 
where the contents are separated 
by line breaks 

は次のとおりです。

This is an example text file\nwhere the contents are separated\nby line breaks\n 

は私がAWK、sedの、または任意の組み込みPOSIXコマンドを使用する開いています。

+0

あなたは 'tr '\ r"' \ n ' anubhava

+0

あなたのコードを投稿するのを忘れました! StackOverflowは、人々がコードを修正する手助けをしています。無料のコーディングサービスではありません。どのコードもコードなしより優れています。たとえあなたがそれを書く方法を知らなくても、プログラムがうまくいくと思っていることをメタコードが示してくれます。 – ghoti

答えて

2

このソリューションを試してみてください。「私たちがやっている

awk 'BEGIN{RS="\n";ORS="\\n"}1' file.txt 

は「\ nの」のようなレコードの区切りを検出している、と私たちは「\ n」を使用して印刷するとき、ダブルスラッシュは、それは印刷する必要があります意味\ n 'を指定すると、パターン1をデフォルトのアクション(レコード全体を印刷)で使用して印刷を強制します。

ご不明な点がありましたら、私はawkを試してもらえません。

1

キャリッジリターン、改行、改行などを意味する場合は「改行」といっても、改行を文字列\nに置き換えたい場合や、ストリップキャリッジは、改行または何か他のものから返しますが、その後者は、あなたが必要とするすべての場合:

dos2unix file 

はあなたがどんなのawkでそれを行うことができますDOS2UNIX持っていない場合:

$ printf 'foo\r\nbar\r\n' | cat -v 
foo^M 
bar^M 

$ printf 'foo\r\nbar\r\n' | awk '{sub(/\r$/,"")}1' | cat -v 
foo 
bar 

ますtrでロバストにできない\rが行末にあるかどうかを知らせずに、sedで移植することはできません。これは、(GNU SED)あなたのために働くかもしれない

0

sed '1h;1!H;$!d;x;s/\n/\\n/g' file 

読まメモリと引用改行にファイル。