【发布时间】:2020-06-19 12:33:36
【问题描述】:
一个 csv 文件有两列。 下面的代码输出整个文件(所有行和用逗号分隔的两列)
BEGIN {FS=","}
{print $0}
但是,下面的代码只输出一个值,即。第一行的第 1 列:
BEGIN {FS=","}
{print $1}
以上代码是一个 .awk 文件,在 Windows 中使用命令 gawk -f test.awk xyz.csv > output.csv 运行
我做错了什么?
编辑:
将 {Print $1} 更改为 "{print "<" NR "><" $1 "><" $0 ">"}"``
<1><naskar><naskar,sahoo ,1
sahoo ,18290,
ree ,6379,
mukherjee ,4609,
【问题讨论】:
-
这不会发生,除非您的
xyz.csv中有杂散字符。发布file xyz.csv的输出 -
使用$1时的输出是"naskar"
-
使用 $0 时的输出是 "naskar, sahoo" 以及下面文件中的所有其余行。
-
我认为文件有问题(“杂散字符”),因为 Gawk 命令在另一个文件中按预期工作。如何识别并解决导致这种奇怪行为的问题?
-
@EdMorton,谢谢。我认为你的推断是正确的。该文件似乎不是 DOS 文件。有什么方法可以直观地或以其他方式确定文件是否为 DOS?
标签: awk