2014-12-02 56 views
0

我想这个awk命令awk "{print NR, $0}" file1.csv,但它添加行号后面有一个空格,而不是逗号。不能行号添加到每个行的开头使用awk

我试过其他的命令具有相同的结果

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

而且我有一个错误的地方我用了一个单引号。

我使用Gawk的Windows上。我错过了什么?

谢谢

+1

,答案没有实际解释解决的问题,是你曾经使用过的扩大shell变量(与'$'开始,如果你还看,其中双qoutes然后你会发现逗号双引号。没有加引号,这意味着它是由'awk'为逗号而这又看到代表'OFS'(空间) – 2014-12-02 08:29:43

+0

只需使用单引号:'AWK“{打印NR‘’$ 0}” file' – fedorqui 2014-12-02 08:36:11

回答

1

谢谢大家对你的答案,但我发现one的工作:上窗口我有双引号中逃脱:

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

试试这个:

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

例子:

[email protected]:~$ 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 
[email protected]:~$ 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 
+0

我已经试过了,但窗户抛出,无论我用一个单引号 – 2014-12-02 08:27:39

0

就包括单引号代替双引号里面的awk的代码。

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

OR

awk -v FS="," -v OFS="," "{print NR,$0}" file.csv 

和你以前的命令awk "{print NR, $0}" file1.csv显示空间,而不是逗号,因为在打印部分默认,将打印输出字段分隔符变量的值。默认值为OFS,默认值为空格。所以它显示的是空格而不是逗号。

+0

我已经试过了一个错误,但Windows抛出,无论我用一个单引号的错误 – 2014-12-02 08:28:43

0

使用"{print NR, $0}"这样的逗号您是printing之后每项打印field separator

awk "{print NR "," $0}"中使用双引号,你是分裂该命令用逗号。

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

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

或者使用printf声明

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

,awk是默认的字段分隔符,一个空间。
为了得到你想要chnage的输出字段分隔符是什么。

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