我有一个格式如下的 CSV 文件:
A @ B @ C @ D @ E
它应该有五列,不幸的是,有些缺少最后一列,例如:
A @ B @ C @ D
如何在缺少最后一列的每一行末尾添加额外的 @
?
最佳答案
假设空格是字段内容的一部分并且分隔符单独为“@”(尽管可以轻松容纳其他变体):
awk 'BEGIN {FS = OFS = "@"} {$5 = $5; print}' inputfile
AWK 创建缺失的中间字段。如果字段已经存在或将其和任何中间创建的字段设置为空字符串,则将字段值设置为自身会保留现有内容。
$ cat inputfile
A @ B @ C @ D @ E
A @ B @ C @ D
A @ B @ C
$ awk 'BEGIN {FS = OFS = "@"} {$5 = $5; print}' inputfile
A @ B @ C @ D @ E
A @ B @ C @ D @
A @ B @ C @@
关于bash - 如何将额外的分隔符添加到 CSV 文件的末尾,发现某些分隔符丢失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10153057/