我有下面的命令来计算遵循该模式的所有目录20??????:
'dir /b "20??????" | find /c "2"'
Run Code Online (Sandbox Code Playgroud)
例如,如果我有以下目录,该命令将返回6:
20090901
20090902
20090903
20090904
20090905
20090906
Run Code Online (Sandbox Code Playgroud)
如何在变量中存储此命令的结果(前面提到的示例中的6)?
我有一个文本文件,其中有超过200行,我只想在第4行之前添加一个新行.我正在使用Windows XP.
输入前的示例文本文件:
header 1
header 2
header 3
details 1
details 2
Run Code Online (Sandbox Code Playgroud)
输出后:
header 1
header 2
header 3
<----- This is new line ---->
details 1
details 2
Run Code Online (Sandbox Code Playgroud) 我会想调用命令find从内execute_process。
该find命令的格式为:
find [/v] [/c] [/n] [/i] [/off[line]] "<String>" [[<Drive>:][<Path>]<FileName>[...]]
Run Code Online (Sandbox Code Playgroud)
因此,字符串必须用双引号引起来。但是,如果在cmake中,我会这样做:
execute_process(COMMAND <firstCommandPipingSomethingToFind>
COMMAND find "<myString>" /c
OUTPUT_VARIABLE MY_COUNT
OUTPUT_STRIP_TRAILING_WHITESPACE)
Run Code Online (Sandbox Code Playgroud)
我得到一个错误FIND: Parameter format not correct。
如果我使用双引号转义\,则会出现错误Access denied - \。
同样,使用双转义\\或双双引号""也无济于事。
所以我的问题是:
有没有办法在调用时转义双引号execute_process以find正确接收其参数?
我可以使用findstr,不需要双引号;但是它不提供计数功能。我可以find通过致电使用find /v /c "",但同样,我需要双引号!我想计算cmake以外的输出行,并将结果直接存储在MY_COUNT变量中。
注意:我正在使用CMake 3.4.1
要重现该问题,您可以使用以下代码,其中的代码cmake -E echo用于将字符串提供给findstr和find:
#This works
execute_process(COMMAND ${CMAKE_COMMAND} …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照此处的答案计算文件中的行数,例如 using find /C,但我在控制台中看到的只是:
find: '/C': No such file or directory
find: 'A': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我有一个简单的“TEST.txt”文件,其中包含三个 As 和三个 B,都在新行中:
$ type TEST.txt
A
A
A
B
B
B
Run Code Online (Sandbox Code Playgroud)
findstr 似乎工作,但它不能返回计数:
$ type TEST.txt | findstr "A"
A
A
A
Run Code Online (Sandbox Code Playgroud)
查找不起作用:
$ type TEST.txt | find "A"
find: 'A': No such file or directory
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
PS:1中的整个示例也不起作用:
$ findstr /R /N "^" TEST.txt | find /C ":"
find: '/C': No such file or directory …Run Code Online (Sandbox Code Playgroud) 我想使用data.table处理一个很大的文件。它不适合内存。我曾考虑过使用循环(正确增加skip参数)读取大块文件。
fread("myfile.csv", skip=loopindex, nrows=chunksize)
Run Code Online (Sandbox Code Playgroud)
处理每个这些块,并用fwrite附加结果输出。
为了正确执行此操作,我需要知道行的总数,而无需读取整个文件。
什么是正确/更快的方法?
我只能考虑仅阅读第一列,但也许有一个特殊的命令或技巧。或者也许有一种自动的方法来检测文件的结尾。