將 awk gsub 指令的輸出重定向到文件

將 awk gsub 指令的輸出重定向到文件

我在 stackexchange 上找到了關於如何刪除逗號分隔的 csv 文件的引號之間的逗號的答案(無法在那裡發表評論,因為我沒有所需的代表)。

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile

如何將輸出重定向到文件而不是將其列印到控制台?

我嘗試了使用“>”的各種組合,但這只給了我空文件或錯誤。 “>>”每次都給我一個錯誤。

答案1

使用標準重定向將在標準輸出上工作:

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile > test.out
$

這仍然會將錯誤列印到螢幕上。

但是,如果您希望錯誤和標準輸出進入文件,請執行:

$ awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2>&1 > test.out
$

或者您可以將錯誤與標準輸出分開:

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub(",", "", $i) } 1' infile 2> errors.out 1 > test.out

相關內容