Linux 学习笔记: shell中${} 的用法,删除&替换
字符串的删除
echo${i##*/} 删除 / 前的所有内容
tt=$i
echo{tt:22}
file=/dir1/dir2/dir3/my.file.txt
\(<span class="token punctuation">{<!-- --></span>file<span class="token comment">
\){file
\(<span class="token punctuation">{<!-- --></span>file<span class="token comment">
\){file
\({file%/*}</span>:删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
<span class="token variable">\){file%%/}:删掉第一个/ 及其右边的字符串:(空值)
\({file%.*}</span>:删掉最后一个 <span class="token keyword">.</span> 及其右边的字符串:/dir1/dir2/dir3/my.file
<span class="token variable">\){file%%.}:删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
记忆的方法为:
%是去掉右边(键盘上% 在$ 的右边)
单一符号是最小匹配;两个符号是最大匹配
取子串及替换
\({file:0:5}</span>:提取最左边的5 个字节:/dir1
<span class="token variable">\){file:5:5}:提取第5 个字节右边的连续5个字节:/dir2
也可以对变量值里的字符串作替换:
\({file/dir/path}</span>:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt
<span class="token variable">\){file//dir/path}:将全部dir 替换为path:/path1/path2/path3/my.file.txt
\({
<span class="token variable">\){
复制