我有一系列PDF文件是以 “年-月.pdf”方式来命名的,年份是固定4位数,但月份可能是1位也可能是2位数,现在我想把它们都改成2位数。

现有文件名列表:

  2021-1.pdf
  2021-2.pdf
  2021-3.pdf
  2021-4.pdf
  2021-5.pdf
  2021-6.pdf
  2021-7.pdf
  2021-8.pdf
  2021-9.pdf
  2021-10.pdf
  2021-11.pdf
  2021-12.pdf

重命名后的列表:

  2021-01.pdf
  2021-02.pdf
  2021-03.pdf
  2021-04.pdf
  2021-05.pdf
  2021-06.pdf
  2021-07.pdf
  2021-08.pdf
  2021-09.pdf
  2021-10.pdf
  2021-11.pdf
  2021-12.pdf
  for f in *.pdf; do mv $f $(awk -F"[-.]" '{printf "%d-%02d.pdf", $1, $2}' <<< $f);done
  mv 2021-1.pdf 2021-01.pdf
  mv 2021-2.pdf 2021-02.pdf
  mv 2021-3.pdf 2021-03.pdf
  mv 2021-4.pdf 2021-04.pdf
  mv 2021-5.pdf 2021-05.pdf
  mv 2021-6.pdf 2021-06.pdf
  mv 2021-7.pdf 2021-07.pdf
  mv 2021-8.pdf 2021-08.pdf
  mv 2021-9.pdf 2021-09.pdf
  mv 2021-10.pdf 2021-10.pdf
  mv 2021-11.pdf 2021-11.pdf
  mv 2021-12.pdf 2021-12.pdf

其它格式串使用:

  1. seq -f %02g 10

  2. printf '%02d\n' $(seq 10)