AWK 不打印输出文件分隔符 OFS

Aik*_*ura 5 bash awk

输入

15.01.2018;Payment sent;;500.00;;
20.12.2017;Payment received;10.40;;;
Run Code Online (Sandbox Code Playgroud)

预期输出

15.01.2018;Payment sent;-500.00
20.12.2017;Payment received;10.40
Run Code Online (Sandbox Code Playgroud)

电流输出

15.01.2018Payment sent-500.00
20.12.2017Payment received10.40
Run Code Online (Sandbox Code Playgroud)

有人在我的命令中看到了问题吗?

awk 'BEGIN{OFS=";";FS=";"} {print match($4, /[^ ]/) ? $1$2$3"-"$4 : $1$2$3}' < in.csv > out.csv
Run Code Online (Sandbox Code Playgroud)

谢谢

Ed *_*ton 5

我不明白为什么您对打印时$1$2$3它们之间没有 OFS感到惊讶,但我也不明白您为什么要尝试在脚本中使用逻辑,而不仅仅是:

$ awk 'BEGIN{FS=OFS=";"} {print $1, $2, ($3=="" ? "-"$4 : $3)}' file
15.01.2018;Payment sent;-500.00
20.12.2017;Payment received;10.40
Run Code Online (Sandbox Code Playgroud)