![如何使用 UNIX 命令向文件数据添加零](https://linux22.com/image/1582615/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20UNIX%20%E5%91%BD%E4%BB%A4%E5%90%91%E6%96%87%E4%BB%B6%E6%95%B0%E6%8D%AE%E6%B7%BB%E5%8A%A0%E9%9B%B6.png)
我有如下的输入格式。
- 第一个字段应该是 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