variable replacement and truncate in bash
Delete
Left -> Right
1. 一次性从前向后匹配删除
VAR=hahaha
echo ${VAR#*h}
# ahaha
2. 贪婪模式,从前向后匹配删除
VAR=hahaha
echo ${VAR##*h}
# a
Right -> Left
1. 一次性从后向前匹配删除
VAR=hahaha
echo ${VAR%a*}
# hahah
2. 贪婪模式,从后向前匹配删除
VAR=hahaha
echo ${VAR%%a*}
# h
About %
and #
#
是去掉左边 (在键盘上 #
在 %
的左边)%
是去掉右边 (在键盘上 %
在 #
的右边)- 符号用一次是最小匹配,两个连用就是最大匹配
Replacement
一次性替换
VAR=hahaha
echo ${VAR/a/A}
# hAhaha
贪婪模式,全部替换
VAR=hahaha
echo ${VAR//a/A}
# hAhAhA
Truncate
VAR=hahaha
echo ${VAR:0:5} #提取起始 1-5 个字节
# hahah
echo ${VAR:3:2} #提取第 3 个字节右边的连续 2 个字节
# ah
Disclaimer
- License under
CC BY-NC 4.0
- Copyright issue feedback
me#imzye.me
, replace # with @ - Not all the commands and scripts are tested in production environment, use at your own risk
- No privacy information is collected here
Try iOS App