[转帖]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 ...
随机推荐
- PLG SaaS 案例:如何实践外链自动增长策略?
首先任何的商业逻辑,光流量增长,没法变现是没用的. 就像博客群发提效工具,得有对应的用户,更得有对应付费用户群体的画像.剩下的就是靠增长,被动让他们找到你的产品,用产品解决他们痛点,他们自然而然会付费 ...
- 聚焦企业开放OpenAPI痛难点,华为云API Explorer助力构建API门户
本文分享自华为云社区<聚焦企业开放OpenAPI痛难点,华为云API Explorer助力伙伴构建API门户>,作者:华为云PaaS服务小智. 当前,IT研发的主流架构已从单体架构向微服务 ...
- 详解JQuery框架的五大选择器
摘要:今天来和大家分享一下JQuery的五种选择器的详细使用方法. 本文分享自华为云社区<[JQuery框架]五大选择器"全家桶"详解!!!>,原文作者:灰小猿 . 今 ...
- 当OLAP碰撞Serverless,看ByteHouse如何建设下一代云计算架构
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为云计算的下一个迭代,Serverless 可以使开发者更专注于构建产品中的应用,而无需考虑底层堆栈问题.伴随着 ...
- 火山引擎 DataLeap:数据秒级生产,揭秘电商实时数仓最佳实践!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 一年一度的「三八大促」刚刚落下帷幕,各大电商平台纷纷推出补贴.营销等玩法,力图推动持续增长.而电商平台持续增长,离 ...
- JQuery 弹出模态窗口
index.html <!DOCTYPE html> <html> <head> <!-- Contact Form CSS files --> < ...
- PPT 用图片轻松做出高大上的精修
PPT 用图片轻松做出高大上的精修 图片留白充分 图片很花 文字和图片中间,插入一个透明背景 单图片型 放大+色块 左右分割 上下分割 用一个容器 图形结合 多图型 图片并列
- AliAGC 自动增益控制算法:解决复杂场景下的音量问题
音视频会议,直播连麦以及短视频已经成为人们工作.教学以及娱乐的一部分,其背后都离不开音视频实时通信等关键技术的广泛应用.音频方面,可预见的是客户业务形式的多样性,环境的复杂性,以及接入设备的差异性会带 ...
- C++ Lambda 快速上手
Lambda 听起来非常的牛逼,很容易就会联想到函数式编程或者 Lambda 演算这样的东西.但是在 C++里,没那么复杂,就把它当匿名函数用就好了 HelloWorld 对于降序排序,我们可以这样写 ...
- Codeforces 115A Party (并查集思维)
题意: 给你每个人的上级,并且一个人和他的所有上级都不能在一个party(小组)中(这点是根据题目给出的两点推导出来的),问最少需要几个party. 思路: 并查集,找一个集合中层级数最多的就是最少需 ...