我有一个格式如下的CSV文件:
A @ B @ C @ D @ E
Run Code Online (Sandbox Code Playgroud)
它应该有五列,遗憾的是,有些列缺少最后一列,例如:
A @ B @ C @ D
Run Code Online (Sandbox Code Playgroud)
如何@在缺少最后一列的每一行的末尾添加一个额外的?
假设空格是字段内容的一部分,分隔符仅为"@"(尽管可以轻松容纳其他变体):
awk 'BEGIN {FS = OFS = "@"} {$5 = $5; print}' inputfile
Run Code Online (Sandbox Code Playgroud)
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 @@
Run Code Online (Sandbox Code Playgroud)