我有数以百计的文件名格式,如:
3016-002+26797_+20220428+142340+0000000002+0000000001+0000000028.dcmzzz
3016-002+26797_+20220428+142340+0000000002+0000000001+0000000240.dcmzzz
3016-002+26797_+20220428+142340+0000000002+0000000001+0000000372.dcmzzz
字符串
我只想得到“.dcmzzz”扩展名之前的前三个数字,所以在这种情况下,我将剩下028,240和372(如果它是一个两位数,请确保保持前导零)。我想这可能与printf有关,但我不知道如何格式化它。有人能给我一个建议,如何实现这一点?谢谢!
3条答案
按热度按时间wztqucjr1#
请在文件所在的目录下运行:
字符串
输出:
型
ckx4rj1h2#
仅使用bash
字符串
km0tfn4u3#
您可以使用
sed
来完善这些方法,只需将目录列表通过管道传输到sed
表达式即可。如果使用 Basic Regular Expressions(BRE),您可以执行以下操作:
字符串
使用 Extended Regular Expressions(ERE),您可以避免转义反向引用组和重复,
型
在这两种情况下,输出都是您请求的,例如:
型
使用POSIX和高级shell。