2012-08-23 106 views
0

使用包含在GnuWin32中的gawk for Windows,如何將文件名追加到文本文件?使用awk附加文件的名稱

這是我想要的一個例子:

Filename -> text.txt 
"aaaa","bbbb","c" 

結果應該是:

"aaaa","bbbb","c","text.txt" 

回答

4

它的存在(至少在Linux版)的變量FILENAME與文件名正在進行中。所以使用它:

awk ' 
    BEGIN { 
     FS = OFS = ","; 
    } 
    { 
     print $0 OFS "\"" FILENAME "\"" 
    } 
' input-file 
+0

我試過這一個班輪,但它不工作awk「{print $ 0 FILENAME}」< input.csv > output.csv。在輸出中附加了 - ,語法正確嗎?或者這意味着在Windows版本中我沒有FILENAME變量。謝謝! – Eduardo

+1

@Eduardo:在沒有輸入重定向的情況下使用'awk'...'input.csv> output.csv'。 – Birei

+2

當您重定向stdin時,awk不再從文件讀取,而是從stdin讀取。在這種情況下,'FILENAME'是'-' –