shell中的一些特殊字符用法知识
条评论前言
shell越用越强大,一些特殊字符特殊用法比较难记,好记性不如烂笔头,网上摘抄的,留一份日后学习。很多事情其实是可以很好的处理的,一些小东西还是没必要引入python代码,直接shell自身就可以处理完成。
${[#%]}
获取文件名和后缀名
1 | f=file.tar.gz |
假设我们定义了一个变量为:
1 | 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
记忆的方法为:
#
是去掉左边(键盘上#
在$
的左边,从左向右删)%
是去掉右边(键盘上%
在$
的右边,从右向左删)- 单一符号是最小匹配;两个符号是最大匹配
参考文档
本文标题:shell中的一些特殊字符用法知识
文章作者:凹凸曼
发布时间:2023-04-24
最后更新:2023-04-24
原始链接:https://sobaigu.com/shell-special-symbols.html
版权声明:转载请务必保留本文链接和注明内容来源,并自负版权等法律责任。