我正在尝试在文本文件上运行实验来获取字频率。我尝试使用以下命令:
gawk -F"[ ,'\".]" -v RS="" '{for(i=1;i<=NF;i++) words[$i]++;}END{for (i in words) print words[i]" "i}' myfile.txt | uniq -c | sort -nr | head -10
但是我收到以下错误:
gawk: cmd. line:1: fatal: cannot open file '|' for reading (No such file or directory)
我在某处读到了';'可以用来代替'|'在Windows机器上,虽然这会导致类似的错误。
好像它正在读取'|'的第一个实例作为文件名。这是在Windows机器上管道的正确方法吗?是否可以使用Cygwin在Windows机器上进行管道连接?
编辑:我将cygwin添加到Windows PATH变量,然后使用cmd窗口。如果我想实际使用cygwin.exe,这是否意味着我必须在C:/ cygwin中放置我想编辑的任何文件?答案 0 :(得分:1)
好的,现在我明白了 - 不要那样做!从cygwin执行cygwin命令,而不是从Windows执行。要在任何文件上执行cygwin命令,只需给命令指定文件的完整路径(但从/cygdrive/
开始),它不必位于C:/cygwin
下,例如从cygwin shell窗口中查看常见Windows文件夹C:\Documents and Settings
中的内容:
$ ls -Q '/cygdrive/c/Documents and Settings'
"All Users" "Default" "Default User" "desktop.ini" "emorton" etc...