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).
我正在尝试将文件名作为新字段添加到每一行的末尾。除了我得到 -
而不是获取文件名外,它可以工作。
基础文件:
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).