我有一个包含名单列表的文件。我需要将名称长度设为11个字符。是否有任何单行命令来完成这项工作?
示例:
ABCDE001
ABCDE002
预期:
000ABCDE001
000ABCDE002
答案 0 :(得分:4)
以下Perl单线程可以帮助您:
perl -i -pe 's/(\S+)/("0" x (11 - length $1)) . $1/eg' file.txt
<强>开关强>:
-i
:编辑<>
个文件(如果提供了扩展程序,则进行备份)-p
:为输入文件中的每个“行”创建一个while(<>){...; print}
循环。-e
:告诉perl
在命令行上执行代码。答案 1 :(得分:3)
您可以使用awk
:
awk '{printf "%0" 11-length($0) "d%s\n", 0, $0}' file
000ABCDE001
000ABCDE002
答案 2 :(得分:2)
使用Perl one-liner,
perl -pe 's|(\w+)| sprintf("%011s", $1) |e' file1.txt
添加-i
开关以将更改应用于文件。