字符串截取

http://hi.chinaunix.net/?20535598/viewspace-42324 字符串截取

$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}

rthought.jpg $ echo ${MYVAR#*fo} odforthought.jpg 记忆方法:当搜索最长匹配时,使用 ##(因为 ## 比 # 长)。当搜索最短匹配时,使用 #。如何记住使用”#“字符来从字符串开始部分出去?在美国键盘上,shift-4 是 ”$“,他是 bash 变量扩展字符。在键盘上,紧靠 ”$” 左边的是 ”#“。这样,能够看到:”#” 位于 ”$” 的“开始处”,因此(根据我们的记忆法),”#” 从字符串的开始处除去字符。同理,使用”%“来从尾部截去字符串:

$ MYFOO="chickensoup.tar.gz"
$ echo ${MYFOO%%.*}

chickensoup $ echo ${MYFOO%.*} 更有另一种形式的变量扩展,来选择特定子字符串。

$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}

cow $ echo ${EXCLAIM:3:7} abunga 请注意命令替换$()和截断字符串${}的区别 file=“/data/download/DD0C17E310DDB4143CEAA584DA0917BEBD4FFD1800000000” echo ${file%/} /data/download echo ${file##/} DD0C17E310DDB4143CEAA584DA0917BEBD4FFD1800000000