Shell脚本:在变量中添加字符

时间:2019-12-06 22:57:18

标签: bash shell insert

Id喜欢为字符添加变量。

我的文件路径为y / photos / family / kids.jpg。

当前已将其分配给变量$ kidsReal

Id希望它是Y:/photos/family/kids.jpg (它需要识别出照片来自Y驱动器(Y :)

到目前为止,我有(???被困在哪里):

#!/bin/bash

#find the kids.jpg back one directory and into the family directory
kids=$(find .. -type f -path *family*/* -name *kids.jpg)

#convert to absolute path
kidsReal=$(realpath ${kids})

#add : between y and / to complete path
kidsRealMod= ???

最终,只需将此变量作为文件路径读取,然后插入到命令中,该命令也将被编码到脚本中。

谢谢,如果这个简单的问题还需要其他详细信息,请告诉我。

2 个答案:

答案 0 :(得分:0)

使用bash和正则表达式:

kidsReal='y/photos/family/kids.jpg'
[[ "$kidsReal" =~ (.)(.*) ]] && kidsRealMod="${BASH_REMATCH[1]^}:${BASH_REMATCH[2]}"
echo "$kidsRealMod"

^将变量中的第一个字符转换为大写。

输出:

Y:/photos/family/kids.jpg

请参阅:The Stack Overflow Regular Expressions FAQ

答案 1 :(得分:0)

此外,您可以使用${str:from:to}将字符串分成两部分,然后再与':'联接起来。

str="Y/photos/family/img.png";
new_str=${str:0:1}:${str:1}
echo $new_str

输出:

Y:/photos/family/img.png
相关问题