Can';t使用awk在每行的开头添加行号

Can';t使用awk在每行的开头添加行号,awk,Awk,我正在尝试这个awk命令awk“{print NR,$0}”file1.csv,但它添加的行号后面是空格,而不是逗号 我用同样的结果尝试了其他命令 awk "{print NR "," $0}" file1.csv 无论我在哪里使用单引号,都会出现错误 我正在Windows上使用Gawk。我错过了什么 谢谢试试这个: awk '{print NR "," $0}' file1.csv 例如: sdlcb@BlrLaite2-Generic:~$ cat ff aa, aa, aa, aa a

我正在尝试这个awk命令
awk“{print NR,$0}”file1.csv
,但它添加的行号后面是空格,而不是逗号

我用同样的结果尝试了其他命令

awk "{print NR "," $0}" file1.csv
无论我在哪里使用单引号,都会出现错误

我正在Windows上使用Gawk。我错过了什么

谢谢

试试这个:

awk '{print NR "," $0}' file1.csv
例如:

sdlcb@BlrLaite2-Generic:~$ cat ff
aa, aa, aa, aa
aa, aa, aa, aa
aa, aa, aa, aa
aa, aa, aa, aa
aa, aa, aa, aa
aa, aa, aa, aa
sdlcb@BlrLaite2-Generic:~$ awk '{print NR "," $0}' ff
1,aa, aa, aa, aa
2,aa, aa, aa, aa
3,aa, aa, aa, aa
4,aa, aa, aa, aa
5,aa, aa, aa, aa
6,aa, aa, aa, aa

只需将awk代码包含在单引号中,而不是双引号中

awk '{print NR "," $0}' file1.csv


并且您的上一个命令
awk“{print NR,$0}”file1.csv
显示空格而不是逗号,因为默认情况下,
,打印部分中的
将打印输出字段分隔符变量的值。默认情况下,
OFS
的默认值为空格。所以它显示的是空格而不是逗号。

使用逗号,就像在
“{print NR,$0}”中一样。
打印后的每个术语都使用

awk“{print NR”、“$0}”中使用双引号
可以用逗号分隔命令

整个awk命令必须使用单引号:

awk '{print NR","$0}' file1.csv
或者使用该语句

awk '{printf("%s,$0\n", NR,$0)}' f

谢谢你们所有人的回答,但我发现工作:在窗口上,我必须在双引号内逃逸:

awk "{print NR \",\" $0}" file1.csv

awk中的
是默认的字段分隔符,一个空格。
要获取所需内容,请更改输出字段分隔符

awk -vOFS="," '{print NR, $0}' file1.csv

我试过了,但是windows会在我使用单引号的地方抛出错误我试过了,但是windows会在我使用单引号的地方抛出错误答案没有实际解释的问题是,您使用了双引号来扩展shell变量(以
$
开头,如果你查看双引号的位置,你会注意到逗号没有被引用,这意味着它被
awk
视为一个逗号,而逗号又表示
OFS
(空格)。只需使用单引号:
awk'{print NR',“$0}”文件
awk -vOFS="," '{print NR, $0}' file1.csv