awk — 获取负号而不是 FILENAME

awk — getting minus instead of FILENAME

我正在尝试将文件名作为新字段添加到每一行的末尾。除了我得到 - 而不是获取文件名外,它可以工作。

基础文件:

070323111|Hudson

我想要的:

070323111|Hudson|20150106.csv

我得到的:

070323111|Hudson|-

这是我的代码:

mv  .bak
cat .bak | awk '{print [=3=] "|" FILENAME}' > 

- 是在没有此类信息时显示文件名的方式。由于您正在做 cat .bak | awk ...awk 不是从文件中读取而是从标准输入中读取。

相反,只需执行:

awk '...' file

你的情况:

awk '{print [=11=] "|" FILENAME}' .bak > 

来自man awk

FILENAME

The name of the current input file. If no files are specified on the command line, the value of FILENAME is “-”. However, FILENAME is undefined inside the BEGIN rule (unless set by getline).