適切でない行を結合する

適切でない行を結合する

以下のような行があります。

[1] 07:37:38 [bb..], qw, Exited with errojjjvice not known
[2] 07:37:39 [bfb.], fg, , This is FILE1, Stderrle or directory
[3] 07:37:39 [SU..], b b, ,, Stderr: bash: /sauch file or directory
cat: /root/file1: No, such, file or directory
[4] 07:37:39 [SUCCESS], gh, , This is F :, No, such file or directory
[5] 07:37:39 [SUCCESS], jk, ,, Stderr: bash: , No, such file or directory
nnnnnn, oot/file1: No, such, file or directory
hylll;; ooppgggh
[6] 07:37:39 [SUCCESS], jjj, ,, Stderr: bash:  No, such file or directory
cat: /root/file1: No, such, file or directory

元のコマンド出力行に行を追加し、その後にコンマを続ける必要があります。また、以下のように数字を含む角括弧で始める必要があります。

[1] 07:37:38 [bb..], qw, Exited with errojjjvice not known
[2] 07:37:39 [bfb.], fg, , This is FILE1, Stderrle or directory
[3] 07:37:39 [SU..], b b, ,, Stderr: bash: /sauch file or directory, cat: /root/file1: No, such, file or directory
[4] 07:37:39 [SUCCESS], gh, , This is F :, No, such file or directory
[5] 07:37:39 [SUCCESS], jk, ,, Stderr: bash: , No, such file or directory, nnnnnn, oot/file1: No, such, file or directory, hylll;; ooppgggh
[6] 07:37:39 [SUCCESS], jjj, ,, Stderr: bash:  No, such file or directory, cat: /root/file1: No, such, file or directory

答え1

よく理解していれば、角括弧で始まっていない行を結合したいはずです。

Perl の方法は次のとおりです:

perl -0777 -i -ape 's/\R(?=[^[])/, /g' file

説明:

\R          # any kind of linebreak (i.e. \r, \n, \r\n)
(?=         # positive lookahead, zero-length assertion that make sure we have after:
    [^[]    # any character that is not an opening square bracket
)           # end lookahead

交換:

,           # a comma followed by a space

与えられた例の結果:

[1] 07:37:38 [bb..], qw, Exited with errojjjvice not known
[2] 07:37:39 [bfb.], fg, , This is FILE1, Stderrle or directory
[3] 07:37:39 [SU..], b b, ,, Stderr: bash: /sauch file or directory, cat: /root/file1: No, such, file or directory
[4] 07:37:39 [SUCCESS], gh, , This is F :, No, such file or directory
[5] 07:37:39 [SUCCESS], jk, ,, Stderr: bash: , No, such file or directory, nnnnnn, oot/file1: No, such, file or directory, hylll;; ooppgggh
[6] 07:37:39 [SUCCESS], jjj, ,, Stderr: bash:  No, such file or directory, cat: /root/file1: No, such, file or directory

関連情報