如何使用 UNIX 命令向文件数据添加零

如何使用 UNIX 命令向文件数据添加零

我有如下的输入格式。

  • 第一个字段应该是 9 位数字
  • 第二个字段应为 5 位数字
  • 第三个字段应为小数点前 5 位
  • 第四个文件应该附加,不带逗号(应该删除逗号)。

输入:

100574,1,2.66,SB        
574155582,1,2.47,SB

我需要以下格式的输出

0001005740000100002.66SB  
5741555820000100002.47SB

我如何编写一个脚本来实现这个功能?

答案1

类似这样的事情应该可以工作 - 您可能需要摆弄 printf 语句的具体值。

cat input | awk 'BEGIN {FS=","}; {printf "%09d", $1; printf "%05d", %2; printf "%05.2f", $3; printf "%s", $4 };'

如果您的问题变得更加复杂,我建议您使用 python 或其他更高级的语言。

如果你遇到困难,请尝试查看https://www.gnu.org/software/gawk/manual/gawk.html

相关内容