在字符串上格式化前导零 - UNIX脚本

时间:2016-06-09 15:38:35

标签: linux unix format

所以我尝试做的是制作一个脚本来读取我的输入文件并做相应的事情。

我的输入文件以这种格式发送给我:

ID     QTY
xxxxxxxxx,xxx
xxxxxxxxx,xx
xxxxxxxxx,xxx
xxxxxxxxx,xx
xxxxxxxxx,xx

有时ID只有8位数,因为数字较小。如果发生这种情况,我需要将其格式化为前导零。此外,我的输入文件有数千行。

到目前为止我有这个

echo "${processNew}"

## Read the file line-by-line and output the id.
IFS=','
while read line
do 
    echo "%09d\n" $line

done < ${processNew}

1 个答案:

答案 0 :(得分:1)

编辑:你几乎就在那里,只需要在代码中进行一些调整,但没有循环:)

如果要打印两列

,请这样写
awk -F, '{printf "%09d,%d\n" ,$1,$2}' "${processNew}"

如果想要打印只有ID列

,请这样写
awk -F, '{printf "%09d\n" ,$1}' "${processNew}"