[转帖]Linux 学习笔记: shell中${} 的用法,删除&替换
Linux 学习笔记: shell中${} 的用法,删除&替换
字符串的删除
echo${i##*/} 删除 / 前的所有内容
## 删除
tt=$i
echo{tt:22} #取的22位以后的所有字符
file=/dir1/dir2/dir3/my.file.txt
\(<span class="token punctuation">{<!-- --></span>file<span class="token comment">#*/}:删掉第一个/ 及其左边的字符串:dir1/dir2/dir3/my.file.txt</span>
\){file##/}:删掉最后一个/ 及其左边的字符串:my.file.txt
\(<span class="token punctuation">{<!-- --></span>file<span class="token comment">#*.}:删掉第一个. 及其左边的字符串:file.txt</span>
\){file##.}:删掉最后一个. 及其左边的字符串:txt
\({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
\({#var}</span> 可计算出变量值的长度:
<span class="token variable">\){#file} 可得到27 ,因为/dir1/dir2/dir3/my.file.txt 是27个字节
[转帖]Linux 学习笔记: shell中${} 的用法,删除&替换的更多相关文章
- [转帖]Linux学习笔记之rpm包管理功能全解
Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...
- linux/linux学习笔记-Shell基础(mooc)
一.shell概述 shell根据ascII表,将命令翻译为0101...传给内核执行. 内核->shell翻译为命令->用户(操作的界面就是shell,shell=翻译官) linux标 ...
- Linux学习笔记 - Shell 函数的使用
基本语法 funname () { action; return -)):如果不加,将以最后一条命令运行结果,作为返回值. } 示例1:定义并调用无返回值的函数 #!/bin/bash a= b= c ...
- Linux学习笔记 - Shell 控制语句
if 语句 语法: #!/bin/bash a= b= if [ $a -eq $b ] then echo "a 等于 b" elif [ $a -gt $b ] then ec ...
- Linux学习笔记 - Shell 输出命令
1. echo 命令 echo 是基本的shell输出命令,她的语法是: echo string 我们也可以使用她来定制一些输出的格式,具体如下: 输出普通字符串 echo "it is a ...
- Linux学习笔记 - Shell 运算符篇
Shell 运算符分类 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 算数运算符 首先,使用 shell 算数运算符是,需要 ...
- Linux学习笔记 -- Shell 数组
定义 在Shell的世界里,我们只能定义一维数组. 定义数组的时候不需要指定长度,数组的下标从0开始; Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下: sh ...
- Linux学习笔记 -- Shell 变量
定义变量 语法: 变量名=值 myVal= 需要注意一下变量明德规则: 首个字符必须为字母(a-z,A-Z). 中间不能有空格,可以使用下划线(_). 不能使用标点符号. 不能使用bash里的关键字( ...
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
随机推荐
- ECS实践案例丨逻辑卷的创建和扩容操作指导
摘要:实现跨硬盘使用,在传统硬盘之上的一层,在云服务器中可以实现跨EVS使用,用户在某些场景需要创建逻辑卷或者对已有的逻辑卷进行扩容处理,或者在某些时候由于误操作导致上述操作失败. [背景描述]: 实 ...
- 连Python都不熟也能跑通AI人脸识别?“隐藏Boss”竟是它!
摘要:先把AI人脸识别跑起来,然后研究它是如何实现的,整个过程中确实收获不少.所谓先跟着做,再跟着学,实践与理论结合,自己感觉有理解了一些基础概念入个门,在此分享一下自己的捣鼓经验. 1.买台小&qu ...
- 用IoT放羊养牛,不出门也能知道它们的动向
摘要:羊圈里几只小羊羔有点无精打采,"叮",牧民拉索划开手机,第一时间得知了这个情况.草场上有只牛一直到天黑都没回来,拉索再次通过手机软件,很快定位到那只独自流落在外的牛儿-- 本 ...
- Cesium球心坐标与本地坐标系经纬转换的数学原理—矩阵变换
之前整理过:<透析矩阵,由浅入深娓娓道来-高数-线性代数-矩阵>.<三维旋转笔记:欧拉角/四元数/旋转矩阵/轴角-记忆点整理>,这次转载 FuckGIS的<Cesium之 ...
- 【活动预告】数据集成引擎BitSail遇上CDC
BitSail是字节跳动开源数据集成引擎,于2022年10月26日宣布开源,可支持多种异构数据源间的数据同步,并提供离线.实时.全量.增量场景下全域数据集成解决方案.BitSail支撑了字节内部众多的 ...
- Kubernetes(K8S) helm chart
感觉和放到一个 yaml 文件中,用 ---- 分隔,操作繁琐程度上,没有太大区别 创建自定义 Chart # 创建自定义的 chart 名为 mychart [root@k8smaster ~]# ...
- 手把手教你配置JupyterLab 环境
Python 代码编辑器怎么选?PyCharm.VS Code.Jupyter Notebook 都各有特色. 对于大型代码库,最好还是用传统的 IDE 比较靠谱,但是数据分析等需要可视化操作的场景下 ...
- L2-018 多项式A除以B (25 分) (math)
这仍然是一道关于A/B的题,只不过A和B都换成了多项式.你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数. 输入格式: 输入分两行,每行给出一个非零多项式,先给出A,再给出B.每行的 ...
- 畅捷通的 Serverless 探索实践之路
作者:计缘 畅捷通介绍 畅捷通是中国领先的小微企业财税及业务云服务提供商,成立于2010年.畅捷通在2021年中国小微企业云财税市场份额排名第一,在产品前瞻性及行业全覆盖方面领跑市场,位居中国小微企业 ...
- 请问Sass/SCSS(with node-sass)和Sass/SCSS(with dart-sass)选哪个?
node-sass是自动编译实时的,dart-sass需要保存后才会生效. 如果您在Dart-VM内运行Dart-Sass,它的运行速度很快,但它表示可以编译为纯JS,dart-sass只是一个编译版 ...