在Linux下,我可以通过对wc
进行系统调用来查找文件中的行数:
CountLines <- function(file) {
count.file <- system(sprintf("wc -l %s", file), intern = TRUE)
count <- as.integer(strsplit(count.file, " ")[[1]][1])
return(count)
}
如何在Windows下有效地执行此操作?通过&#34;高效&#34;我的意思是快速和轻松的资源,因为我可能在大文件上使用它。
尽可能地,我更喜欢不需要安装额外软件包或工具的解决方案。
答案 0 :(得分:3)
看一下这个链接:
https://isc.sans.edu/diary/Finding+Files+and+Counting+Lines+at+the+Windows+Command+Prompt/2244
最后一行适用于我:
c:\> type c:\windows\win.ini | find /c /v "~~~"
# 32
更新: 如果你想将它用作R函数,试试这个:
CountLines <- function(file) {
stopifnot(file.exists(file))
unlikely.pattern <- paste(sample(LETTERS), collapse = "")
cmd <- sprintf('type %s | find /c /v "%s"', file, unlikely.pattern)
res <- shell(cmd, intern = TRUE)
return(as.integer(res))
}
CountLines("c:\\windows\\win.ini")
[1] 32
。 。
我找到了另一种方法来提高效率,但我将此完美留给您:
> system("POWERSHELL Get-Content c:\\windows\\win.ini | Measure-Object -word -line -character", intern=TRUE)
[1] ""
[2] " Lines Words Characters Property "
[3] " ----- ----- ---------- -------- "
[4] " 32 38 414 "
[5] ""
[6] ""