我想将 Thunderbird Mozilla 的 Sent 文件读入 R。 有时必须将 2 条或更多条线放在 1 条线上。 这些是以","逗号结尾的行 例如:
From: Frans <frans@zeenit.nl>
Subject: volledig overzicht beschikbaar
To: aldjan@gmail.com, clen@zeenit.nl, pinge1@zeenit.nl,
griepje@zeenit.nl, Jowialj@live.com, pelicaan@hotmail.com,
pico11@zeenit.nl
Date: Mon, 21 Mar 2016 14:17:09 +0100
合并后:
From: Frans <frans@zeenit.nl>
Subject: volledig overzicht beschikbaar
To: aldjan@gmail.com, clen@zeenit.nl, pinge1@zeenit.nl, griepje@zeenit.nl, Jowialj@live.com, pelicaan@hotmail.com, pico11@zeenit.nl
Message-ID: <56EFF455.5000006@zeenit.nl>
Date: Mon, 21 Mar 2016 14:17:09 +0100
我不会只依赖逗号。使用grep
您可以识别带有To:
标记的行并粘贴所有行,直到具有以下标记的行Message-ID:/Date:
。
cleanHeader <- function(x) {
line.to <- grep("^To", header)
line.next <- grep("^Date|^Mess", header)[1]
new.to <- paste(header[line.to:(line.next - 1)], collapse="")
c(header[1:(line.to - 1)], new.to, header[line.next:length(header)])
}
结果
cleanHeader(header1)
[1] "From: Frans <frans@zeenit.nl>"
[2] "Subject: volledig overzicht beschikbaar"
[3] "To: aldjan@gmail.com, clen@zeenit.nl, pinge1@zeenit.nl, griepje@zeenit.nl,
Jowialj@live.com, pelicaan@hotmail.com, pico11@zeenit.nl"
[4] "Date: Mon, 21 Mar 2016 14:17:09 +0100"
cleanHeader(header2)
[1] "From: Frans <frans@zeenit.nl>"
[2] "Subject: volledig overzicht beschikbaar"
[3] "To: aldjan@gmail.com, clen@zeenit.nl, pinge1@zeenit.nl, griepje@zeenit.nl,
Jowialj@live.com, pelicaan@hotmail.com, pico11@zeenit.nl"
[4] "Message-ID: <56EFF455.5000006@zeenit.nl>"
[5] "Date: Mon, 21 Mar 2016 14:17:09 +0100"
<小时 />数据:
tmp <- tempfile()
cat("From: Frans <frans@zeenit.nl>
Subject: volledig overzicht beschikbaar
To: aldjan@gmail.com, clen@zeenit.nl, pinge1@zeenit.nl,
griepje@zeenit.nl, Jowialj@live.com, pelicaan@hotmail.com,
pico11@zeenit.nl
Date: Mon, 21 Mar 2016 14:17:09 +0100", file=tmp, sep="n")
header1 <- readLines(tmp)
cat("From: Frans <frans@zeenit.nl>
Subject: volledig overzicht beschikbaar
To: aldjan@gmail.com, clen@zeenit.nl, pinge1@zeenit.nl, griepje@zeenit.nl, Jowialj@live.com, pelicaan@hotmail.com, pico11@zeenit.nl
Message-ID: <56EFF455.5000006@zeenit.nl>
Date: Mon, 21 Mar 2016 14:17:09 +0100", file=tmp, sep="n")
header2 <- readLines(tmp)