0
点赞
收藏
分享

微信扫一扫

实战

sin信仰 2023-11-07 阅读 133

实战

[root@linux-server ~]# a=123456123789

[root@linux-server ~]# echo ${a/1/}    #第一次匹配的被替换

23456123789

[root@linux-server ~]# echo ${a/1/0}  #第一次匹配到1替换成0

023456123789

[root@linux-server ~]# echo ${a//1/}  #全局的匹配被替换

2345623789                  

[root@linux-server ~]# echo ${a//1/x} #全局匹配到1替换成x

x23456x23789


例:

file=/dir1/dir2/dir3/my.file.txt

${file#*/}:  拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt  

${file##*/}: 拿掉最后一条 / 及其左边的字符串:my.file.txt  

${file#*.}:  拿掉第一个 . 及其左边的字符串:file.txt

${file##*.}: 拿掉最后一个 . 及其左边的字符串:txt

${file%/*}:  拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3

${file%%/*}: 拿掉第一条 / 及其右边的字符串:(空值)

${file%.*}:  拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file

${file%%.*}: 拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my

记忆的方法为:

# 是去掉左边(在键盘上 # 在 $ 之左边)

% 是去掉右边(在键盘上 % 在 $ 之右边)  

单一符号是最小匹配;两个符号是最大匹配(贪婪匹配)

举报

相关推荐

0 条评论