1

内容が次のテキストファイルがあります。

Fri Oct 02 19:52:02 +0000 2009 | JeLLz Mamii;) | DopeAssDarLey | my b.i⥠BITCH!! | @_steffhoney lmfao oh Dayum gull inee hihup Walmart en boiy maself sum skoo sepplies

Tue Aug 30 23:29:47 +0000 2011 | Braydon Tyrrell | braydon_tyrrell | westlock. AB. canada | RT @Darkskin: RT @JazmineDukes: @Darkskin Who are you that U have a blue check mark by ur name?? < 
I polish shoes at Walmart while pp ...

ご覧のとおり、「靴を磨く」という行は、の2番目のレコードの一部ですTues Aug 30。しかし、このファイルを何かのために処理している間、それは3番目のまったく異なるレコードと見なされます。

「靴を磨く」の行とその直前の行をマージできるようにしたい、つまり「名前でチェックマークを付けますか??」これを行う方法はありますか?この異常は、ファイル内の多くのレコードに存在します。だから私はそのようなすべてのレコードに対してそれを行うことができる必要があります、それで私の出力は次のようになります

Fri Oct 02 19:52:02 +0000 2009 | JeLLz Mamii;) | DopeAssDarLey | my b.i⥠BITCH!! | @_steffhoney lmfao oh Dayum gull inee hihup Walmart en boiy maself sum skoo sepplies

Tue Aug 30 23:29:47 +0000 2011 | Braydon Tyrrell | braydon_tyrrell | westlock. AB. canada | RT @Darkskin: RT @JazmineDukes: @Darkskin Who are you that U have a blue check mark by ur name?? < I polish shoes at Walmart while pp ...
4

3 に答える 3

1

末尾にスペースが含まれている場合、これは次の行に結合します。

sed '/ $/ N; s/\n//' file.txt

ただし、末尾にスペースがある行が複数ある可能性がある場合は、ループが必要になります。

sed -e :a -e '/ $/ { $!N; s/\n//; ta }' file

結果:

Fri Oct 02 19:52:02 +0000 2009 | JeLLz Mamii;) | DopeAssDarLey | my b.i⥠BITCH!! | @_steffhoney lmfao oh Dayum gull inee hihup Walmart en boiy maself sum skoo sepplies

Tue Aug 30 23:29:47 +0000 2011 | Braydon Tyrrell | braydon_tyrrell | westlock. AB. canada | RT @Darkskin: RT @JazmineDukes: @Darkskin Who are you that U have a blue check mark by ur name?? < I polish shoes at Walmart while pp ...
于 2012-10-31T11:37:51.553 に答える
0
perl -00 -lpe 's/\n//g'

これは、ファイルを一度に「段落」ずつ読み取り、「内部」の改行を削除します。

于 2012-10-31T14:00:40.250 に答える
0

あなたは試すことができます:

awk -v RS='\n\n+' '{ sub(/\n/, "", $0) ; print $0 "\n" }' log.txt
于 2012-10-31T11:37:13.177 に答える