找到文件中的行数

时间:2014-12-09 19:57:37

标签: r windows

在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;我的意思是快速和轻松的资源,因为我可能在大文件上使用它。

尽可能地,我更喜欢不需要安装额外软件包或工具的解决方案。

1 个答案:

答案 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] ""