linux - awk 拆分文件给出不完整的行

标签 linux csv awk gawk

我的文件是一个包含逗号分隔字段的 csv 文件。

我试图按第一个字段将文件拆分为多个文件。我做了以下事情:

cat myfile.csv | awk -F',' '{print $0 > "Mydata"$1".csv"}'

它确实拆分了文件,但是文件已损坏,每个文件的最后一行都不完整。断裂位置似乎是随机的。有人有同样的问题吗?

最佳答案

这些类型的问题总是因为您在 Windows 上创建了输入文件,所以它在行尾有虚假的 control-Ms。在您的输入文件上运行 dos2unix 以清理它,然后重新运行您的 awk 命令,但将其重写为:

awk -F',' '{print > ("Mydata" $1 ".csv") }' myfile.csv

解决几个不相关的问题。

关于linux - awk 拆分文件给出不完整的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18876612/

相关文章:

c++ - 如何dlsym加载QString函数

regex - 当 'cut' 通过管道传输几行与 grep 不同的模式时的解决方法?

awk 在字段之间打印字符

join - 使用 awk 合并两个表以创建新结果

linux - ssh 公钥登录我的 ubuntu 服务器随机失败

linux - 适用于 Linux 的 Dreamweaver 等价物

linux - 在 PATH 中添加 Storm

linux - 将小于特定阈值的数字替换为零

java - 在循环期间动态写入 CSV

python - 重置 csv.DictReader(StringIO.StringIO(some_string))