Awk 在Cygwin giving中呆呆地看着;“访问被拒绝”;错误

Awk 在Cygwin giving中呆呆地看着;“访问被拒绝”;错误,awk,cygwin,access-denied,Awk,Cygwin,Access Denied,我正在尝试使用Cygwin运行一个简单的awk命令 我想遍历一个文件,将每一行放在一个名为与第一个字段相同的文件中,将第一个字段中具有相同值的行附加到它们的相关文件中 我正在运行以下命令: gawk -F , '{print>\$1}' ./filename.csv 我从命令中得到的唯一输出是:“访问被拒绝。” 这就是它的总体外观 我查看了文件权限并允许所有操作,但似乎无法使其正常工作 根据要求使用额外信息编辑: C:\projects>gawk -F , '{print >

我正在尝试使用Cygwin运行一个简单的awk命令

我想遍历一个文件,将每一行放在一个名为与第一个字段相同的文件中,将第一个字段中具有相同值的行附加到它们的相关文件中

我正在运行以下命令:

gawk -F , '{print>\$1}' ./filename.csv
我从命令中得到的唯一输出是:“访问被拒绝。”

这就是它的总体外观

我查看了文件权限并允许所有操作,但似乎无法使其正常工作

根据要求使用额外信息编辑:

C:\projects>gawk -F , '{print > \$1}' filename.csv
Access is denied.

C:\projects>$SHELL --version
'$SHELL' is not recognized as an internal or external command,
operable program or batch file.

C:\projects>gawk --version
GNU Awk 4.1.4, API: 1.1 (GNU MPFR 3.1.5, GNU MP 6.1.2)
Copyright (C) 1989, 1991-2016 Free Software Foundation.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
我尝试从Cygwin Shell运行,现在出现以下错误:

/cygdrive/c/projects/FileSplit
$ gawk -F , '{print > $1}' ./filename.csv
gawk: cmd. line:1: (FILENAME=./filename.csv FNR=1) fatal: expression for `>' redirection has null string value
在Cygwin Shell中运行它是有效的,尽管我的第一个字段在某些行上是空的,所以我最后使用的命令是:

gawk -F , '{if(length($1)==0)print > "empty"; else print > $1}' ./filename.csv

去掉反斜杠:

gawk -F , '{print > $1}' ./filename.csv

鉴于您现在添加到问题中的内容,您正在从Windows CMD提示符运行gawk,而不是从cygwin运行。不要这样做,而是从cygwin终端窗口运行gawk,执行类似于
All Programs->cygwin->cygwin->Cygwin64终端的操作来启动运行bash shell的cygwin窗口。

Hi。谢谢,问题是由于某种原因,它不能识别美元。它创建一个名为$1}的空文件,控制台输出为:C:\projects>gawk-F,“{print>$1}”filename.csv gawk:cmd。行:1:{print filename.csv gawk:cmd.line:1:^语法错误gawk:cmd.line:1:{print filename.csv gawk:cmd.line:1:^意外换行或字符串结束挂起。您说您正在使用cygwin,但您的提示看起来像windows提示,您说的是“控制台”您描述了在使用cygwin或任何其他UNIX平台时无法遇到的问题。胡乱猜测-您是从Windows而不是从cygwin调用awk吗?我假设
C:\projects>
是您的提示,您没有执行该字符串,对吗?我使用cygwin与Windows shell集成。cygwin是针对W的UNIX环境indows。我知道Cygwin是什么,我已经每天使用它10多年了,它的行为与您描述的awk脚本不一样。如果您编辑您的问题以显示您正在执行的脚本的副本/粘贴以及您正在使用编辑器正确格式化的错误
按钮可能有人会发现一些东西。同时显示您正在执行的
$SHELL--version
awk--version
以及从这两个版本中获得的输出。谢谢!我收到了一个不同的错误,但这是因为字段1中的数据是空的,所以我最终得到了以下结果:gawk-F,{if(length($1)==0)print>“empty”;else print>$1}'./filename.csv
gawk -F , '{print > $1}' ./filename.csv