前の行に行を追加するには?

前の行に行を追加するには?

解析して分析する必要があるログファイルがあります。ファイルには次のような内容が含まれています。

文書:

20141101 server contain dump
20141101 server contain nothing
    {uekdmsam ikdas 

jwdjamc ksadkek} ssfjddkc * kdlsdl
sddsfd jfkdfk 
20141101 server contain dump

上記の内容に基づいて、前の行に追加する日付または数字が開始行に含まれていないことを確認する必要があります。

結果ファイル:

20141101 server contain dump
20141101 server contain nothing {uekdmsam ikdas jwdjamc ksadkek} ssfjddkc * kdlsdl sddsfd jfkdfk 
20141101 server contain dump

ベストアンサー1

perl否定的な予測を使用するのバージョン:

$ perl -0pe 's/\n(?!([0-9]{8}|$))//g' test.txt
20141101 server contain dump
20141101 server contain nothing    {uekdmsam ikdas jwdjamc ksadkek} ssfjddkc * kdlsdlsddsfd jfkdfk
20141101 server contain dump

-0正規表現のクロスドメイン一致を許可するフルファイル、は、\n(?!([0-9]{8}|$))改行文字の後に8桁の数字または行の終わり(使用されている場合は-0ファイルの終わり)が続かないことを示す否定予測です。

おすすめ記事