Shell 脚本:以可预测的模式将文本插入文件名

Shell 脚本:以可预测的模式将文本插入文件名

仅使用 shell 脚本,我怎样才能将文本插入到文件名。该文件具有可预测的模式,比如说 3 个字母和 3 个数字,我想在这两个字母和数字的中间插入文本模式。假设文件名为 ABC123。因此,文件名应为 ABC.blah.123

答案1

您可以使用sed来更改文件名字符串:

echo $filename | sed -r 's/^([a-zA-Z]{3})([0-9]{3})$/\1.blah.\2/'

这意味着:如果字符串的前 3 个字符是字母,则取它们,添加字符串“.blah”。如果字符串的后 3 个字符是数字,则添加它们。

例如,如果你想重命名文件,你可以这样做:

mv "$filename" "`echo $filename | sed -r 's/(^[a-zA-Z]{3})([0-9]{3})$/\1.blah.\2/'`"

答案2

假设您有足够最近的bash,您可以使用参数子字符串:

file=ABC123
text=blah
new_file="${file:0:3}.$text.${file:3}"

相关内容