[转帖]Linux 学习笔记: shell中${} 的用法,删除&替换

linux,学习,笔记,shell,用法,删除,替换 · 浏览次数 : 0

小编点评

**${} 的用法:** ${} 是在 shell 中用来引用变量的值的功能符号。它可以用于普通字符串、变量和引用其他变量的表达式中。 **删除 &替换字符串:** `echo${i##*/}` 删除 / 前的所有内容,并保留最后的一个 / 和右边的字符串。 **示例:** ```bash i=22 echo${i##*/} ``` **删除第一个/ 及其左边的字符串:** `file=/dir1/dir2/dir3/my.file.txt\\(<span class=\"token punctuation\">{<!-- --></span>file<span class=\"token comment\">#*/}` 删除第一个 . 及其左边的字符串: `file.txt\\(<span class=\"token punctuation\">{<!-- --></span>file<span class=\"token comment\">#*.}` **删除最后一个. 及其左边的字符串:** `file.txt\\(<span class=\"token punctuation\">{<!-- --></span>file<span class=\"token comment\">#*/}` **删除最后一个. 及其左边的字符串:** `txt\\({file%/*}</span>` **提取最左边的5 个字节:** `/dir1<span class=\"token variable\">\\){file:5:5}` **提取第5 个字节右边的连续5个字节:** `/dir2<span class=\"token variable\">\\){file:5:5}` **替换字符串:** `/path1/dir2/dir3/my.file.txt\\({#var}</span>` 将第一个dir 替换为path: `/path1/path2/path3/my.file.txt\\({#var}</span>`

正文

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 学习笔记: shell中${} 的用法,删除&替换

    Linux 学习笔记: shell中${} 的用法,删除&替换 字符串的删除 echo${i##*/} 删除 / 前的所有内容 ## 删除 tt=$i echo{tt:22} #取的22位以后的所有字符 file=/dir1/dir2/dir3/my.file.txt ${file#/}:删掉第一个

    [转帖]Linux文本处理三剑客之awk学习笔记05:getline用法详解

    https://www.cnblogs.com/alongdidi/archive/2021/01/19/awkGetline.html getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个

    [转帖]Linux文本处理三剑客之awk学习笔记05:getline用法详解

    https://www.cnblogs.com/alongdidi/p/awkGetline.html getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据。我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取

    [转帖]【学习笔记】Linux下CPU性能评估

    Linux下CPU性能评估 1、 vmstat监控CPU使用情况 【说明】 procs: l r表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU的个数,就说明CPU不足,需要增加CPU。 l b表示在等待资源的进程数,比如正在等待I/O或者内存交换等。 memory: l swpd:

    [转帖]Kafka 核心技术与实战学习笔记(六)kafka线上集群部署方案

    一.操作系统-Linux Kafka是JVM系的大数据框架kafka由Scala语言和Java语言编写而成,编译之后的源代码就是普通的".class"文件 使用Linux kafka客户端底层使用Java的selector,selector在Linux上的实现机制是epoll,由于在windows上

    [转帖]Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量

    https://www.cnblogs.com/alongdidi/p/test_exitStatus_positionalAndSpecialParameter.html 我自己接触Linux主要是大学学习的Turbolinux --> 根据《鸟哥的Linux私房菜:基础篇》(第三版) --> 马

    [转帖]《Linux性能优化实战》笔记(一)—— 平均负载

    最近在看极客时间的《Linux性能优化实战》课程,记录下学习内容。 一、 平均负载(Load Average) 1. 概念 我们都知道uptime命令的最后三列分别是过去 1 分钟、5 分钟、15 分钟系统的平均负载,到底平均负载是什么? 简单来说,平均负载是指单位时间内,系统处于可运行状态和不可中

    [转帖]Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量

    Bash脚本编程学习笔记04:测试命令test、状态返回值、位置参数和特殊变量 我自己接触Linux主要是大学学习的Turbolinux --> 根据《鸟哥的Linux私房菜:基础篇》(第三版) --> 马哥的就业班课程。给我的感觉是这些课程对于bash的讲解,理论上是不够的,但是限于时间、篇幅和精

    [转帖]Jmeter学习笔记(十七)——jmeter目录结构

    原文链接:http://www.cnblogs.com/zichuan/p/6938772.html 一、bin目录examples: 目录中有CSV样例 jmeter.bat windows的启动文件 jmeter.log jmeter运行日志文件 jmeter.sh linux的启动文件 jme

    [转帖]正则表达式边玩边学

    最近在学习极客时间的《正则表达式入门课》,感觉很适合入门玩,所以简单作一些笔记方便查找参考。 正则,就是正则表达式,英文是 Regular Expression,简称 RE。顾名思义,正则其实就是一种描述文本内容组成规律的表示方式。在编程语言中,正则常常用来简化文本处理的逻辑。在 Linux 命令中