在 Linux 上为字符串添加前导零

Tes*_*Bud 1 linux shell perl awk

我有一个包含名称列表的文件。我需要将名称长度设为 11 个字符。是否有任何单行命令来完成这项工作?

例子:

文件1.txt

ABCDE001
ABCDE002
Run Code Online (Sandbox Code Playgroud)

预期的:

文件1.txt

000ABCDE001
000ABCDE002
Run Code Online (Sandbox Code Playgroud)

Mil*_*ler 5

以下 Perl one-liner 可以帮助您:

perl -i -pe 's/(\S+)/("0" x (11 - length $1)) . $1/eg' file.txt
Run Code Online (Sandbox Code Playgroud)

开关

  • -i<>就地编辑文件(如果提供扩展名则进行备份)
  • -pwhile(<>){...; print}为输入文件中的每一“行”创建一个循环。
  • -e: 告诉perl在命令行上执行代码。