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= ???
最终,只需将此变量作为文件路径读取,然后插入到命令中,该命令也将被编码到脚本中。
谢谢,如果这个简单的问题还需要其他详细信息,请告诉我。
答案 0 :(得分:0)
使用bash和正则表达式:
kidsReal='y/photos/family/kids.jpg'
[[ "$kidsReal" =~ (.)(.*) ]] && kidsRealMod="${BASH_REMATCH[1]^}:${BASH_REMATCH[2]}"
echo "$kidsRealMod"
^
将变量中的第一个字符转换为大写。
输出:
Y:/photos/family/kids.jpg
答案 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