我测试了我想在cygwin中运行的代码行(因为我正在使用窗口),如下所示:
/cygdrive/f/Data/testFolder
$ awk -F "," '{if($3 == 10948514) {print}}' < testfile.csv | head -n 20
20180301050630663,3122,10948514,abcd,,,,,,,,,,
20180301050630663,3212,10948514,abcd,,,,,,,,,,
20180301050630663,3122,10948514,abcd,,,,,,,,,,
20180301050630663,3212,10948514,abcd,,,,,,,,,,
20180301050630663,312,10948514,abcd,,,,,,,,,,
20180301050630663,3212,10948514,abcd,,,,,,,,,,
它似乎在Cygwin上运行良好。
但是,由于我使用R进行数据分析,我打算使用R中的pipe
函数来过滤掉要读入R的Huge数据集的行。
我在read.csv
函数中有以下代码行(请注意,csv根本没有任何标题):
pipe(paste0("awk -F \",\" '{if($3 ==" ,10948514,") {print}}' < testfile.csv",sep=""))
只返回
A connection with
description "C:\\Windows\\system32\\cmd.exe /c awk -F \",\" '{if($3 ==10948514) {print}}' < testfile.csv"
class "pipe"
mode "r"
text "text"
opened "closed"
can read "yes"
can write "yes"
问题:根本没有读取任何内容。 pipe
只返回上述内容。我想知道究竟出了什么问题。可能是因为cmd无法识别awk
命令。如果是,那么在pipe
函数中调用cygwin吗?它可能是别的吗?
我现在很困惑。
有人可以给我一个解决方案来解决这个问题吗?感谢。