在unix中将文本插入文件名

时间:2016-05-12 02:22:33

标签: shell

场景:

#!/usr/bash/ksh
source_dir=/usr/idmp/bbp/

filename = "SURH00000321312"

insertText = `IDD`

我希望结果如SUIDDRH00000321312。如何将insertText变量添加到文件名中。

2 个答案:

答案 0 :(得分:1)

这就是你所要求的:

$ new=${filename:0:2}$insertText${filename:2}
$ echo "$new"
SUIDDRH00000321312

这可以通过从偏移量开始选择变量filename的子串并通过shell形式继续一段长度来实现:${parameter:offset:length}

兼容性

子字符串展开works under kshbashzsh,但不是dashtcsh

答案 1 :(得分:1)

来自sed的替代方式:

new_name=$(echo SURH00000321312 |sed -r 's/(.)(.)/\1\2IDD/')
echo $new_name
SUIDDRH00000321312