shell - awk 到 csv 文件的字符串字段的零填充
问题描述
我需要用零填充 csv 文件的第 6 列,但是当我尝试使用以下命令时,它只是将实际值替换为 0000。
awk -F',' -v OFS=',' '{$6 = sprintf("%04d", $6); print}' $Input
输入:
"xx","x","xxxxxx","xxx","xx","123","xxxxxxxx","xxxxx"
"xx","x","xxxxxx","xxx","xx" ,"23","xxxxxxxx","xxxxx"
"xx","x","xxxxxx","xxx","xx","3","xxxxxxxx","xxxxx"
"xx","x" ,"xxxxxx","xxx","xx","4123","xxxxxxxxx","xxxxx"
输出:
"xx","x","xxxxxx","xxx","xx","0123","xxxxxxxx","xxxxx"
"xx","x","xxxxxx","xxx","xx" ,"0023","xxxxxxxx","xxxxx"
"xx","x","xxxxxx","xxx","xx","0003","xxxxxxxx","xxxxx"
"xx","x" ,"xxxxxx","xxx","xx","4123","xxxxxxxxx","xxxxx"
解决方案
您可以将其awk
与自定义字段分隔符一起使用","
:
awk 'BEGIN {FS=OFS="\",\""} {$6 = sprintf("%04d", $6)} 1' file
"xx","x","xxxxxx","xxx","xx","0123","xxxxxxxxx","xxxxx"
"xx","x","xxxxxx","xxx","xx","0023","xxxxxxxxx","xxxxx"
"xx","x","xxxxxx","xxx","xx","0003","xxxxxxxxx","xxxxx"
"xx","x","xxxxxx","xxx","xx","4123","xxxxxxxxx","xxxxx"
推荐阅读
- linux - CURL从变量传递参数 - 不工作
- python - 在python中的字符串中的所有单词周围插入引号
- oracle - Oracle APEX 20.2 电子邮件发送
- excel - EXCEL公式if条件
- reactjs - 在 React 项目中使用 envalid 会引发运行时错误 [envalid] Env var not found: $$typeof
- javascript - 拆分大字符串 Google 脚本
- python - Python 的多进程池中是否存在错误,使已失效的进程处于生成模式?
- python - 打开python的VS代码时弹出环境变量错误
- r - 在 R 中使用预测创建数据集时出错
- signalr - SignalR 在哪里捕获异常“握手已关闭”