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

原文地址:https://www.cnblogs.com/nanshanjushi/p/11544888.html