2014-12-02 57 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 
相關問題