Text-Processing

當值為 12 個字元時添加 0

  • December 31, 2016

我從具有不同值的文件中提取一列,其中一些是 11 個字元到 13 個字元,但是每當值為 11 時,我需要在前面添加一個 0。

awk -F, '{print $1 }' $FILE | \
awk '{printf("%04d%s\n", NR, $0)}' | \
awk '{printf("%-12s\n", $0) }'

82544990078
82544990757
899188001738
9337402002723
9337402002686
9337402002747
812153010733
852271005003
89000118359

它應該如下所示:

082544990078
082544990757
899188001738
9337402002723
9337402002686
9337402002747
812153010733
852271005003
089000118359

您可以awk為此使用:

$ awk 'length() == 11 { $0 = "0" $0 } 1' < input
082544990078
082544990757
899188001738
9337402002723
9337402002686
9337402002747
812153010733
852271005003
089000118359

... | sed 's/^(.\{11,11\})$/0\1/' | ...

引用自:https://unix.stackexchange.com/questions/333878