shell变量的子串应用技术
1.1.1 ${#string} 显示string字符串的长度
eg:
JIMY="I am a young boy"
echo ${#JIMY}
[root@mgp1 ~]# JIMY="I am a young boy"
[root@mgp1 ~]#
[root@mgp1 ~]# echo ${#JIMY}
16
同时:echo $JIMY|wc -m 也可以得到字符个数
1.1.2 ${string:position}
eg:${string:2} 显示string字符串从第2个字符截取,从第三个字符开始到字符结尾的子字符串。
也可以理解为删除前面的多少个字符。
1.1.3 ${string:position:length}
从第$position个字符开始取,取$length个字符,不包含第$position个字符值。
eg:
JIMY="I am a young boy"
echo ${JIMY:2:3}
输出结果是:
[root@mgp1 ~]# JIMY="I am a young boy"
[root@mgp1 ~]# echo ${JIMY:2}
am a young boy
[root@mgp1 ~]# echo ${JIMY:2:4}
am a
也可以通过 echo $JIMY|cut 3-4 得到相同结果
1.1.4 从字符串开头开始删除最短匹配的子字符串
${String#substring} 从String中从开头开始删除最短匹配substring的子串
echo ${JIMY#I am}
[root@mgp1 ~]# echo ${JIMY#I am}
a young boy
1.1.5 从字符串中删除最长匹配的子字符串
${string##substring}
1.1.6 从字符串结尾开始删除最短匹配的子字符串
${String%substring} 从String中从开头开始删除最短匹配substring的子串
echo ${JIMY%young boy}
只能从结尾开始,不能删除I am字符串
[root@mgp1 ~]# echo ${JIMY%boy}
I am a young
1.1.7 替换
${string/substring/replace} 使用$replace 来代替第一个匹配的substring
[root@mgp1 ~]# echo $JIMY
I am a young boy
[root@mgp1 ~]# echo ${JIMY/boy/girl}
I am a young girl
4.8 ${string/#substring/replace} 如果$string 前缀匹配$substring,就用$repace替换$substring.
[root@mgp1 ~]# echo $JIMY
I am a young boy
[root@mgp1 ~]# echo ${JIMY/#I am/You are}
You are a young boy
4.9 ${string/%substring/replace} 如果$string 后缀匹配$substring,就用$repace替换$substring.
[root@mgp1 ~]# echo $JIMY
I am a young boy
[root@mgp1 ~]# echo ${JIMY/%boy/girl}
I am a young girl
1.1 修改文件名
rename [option] expression replacement file
举例:
要修改的文件名为 stu_20190909_finished.jpg
将后缀改为html
rename .jpg .html *.jpg