我有一个遵循此模型的文件名:
1.raw_bank_details_211.trg
2.raw_bank_details_222.trg
我需要cut
在Unix中使用命令并剪切上面的字符串以获得字符串,211
然后222
从字符串中回显值。
我已经使用过grep grep -o -E '[0-9]+'
,我需要一个替代方案。
cut
是错误的工具。要操作诸如文件名之类的短字符串,请尽可能使用外壳程序的字符串操作工具。所有的sh型shell¹(sh,破折号,bash,ksh,zsh等)都有一些基本的字符串操作作为变量替换的一部分。参见例如“参数扩展”下的破折号手册。您可以删除与模式匹配的最短/最长前缀/后缀。
您想要文件名中的最后一位数字,所以:
filename=1.raw_bank_details_211.trg
suffix="${filename##*[0-9]}"
number="${filename%"$suffix"}"
number="${number##*[!-0-9]}"
¹除了某些POSIX Bourne之前的外壳外,您并不在意这些外壳。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句