`

bash 字符串截取

阅读更多

命令的2种替换形式 $()和 ``
示例:截断字符串    
a):
    #截取文件名称
    var1=$(basename /home/aimybbe/bash/test.sh)
    echo $var1
    
    #截取目录
    var2=$(dirname /home/aimybbe/bash/test.sh)
    echo $var2
b):
    var1=`basename /home/aimybbe/bash/test.sh`
    echo $var1
    
    var2=$(dirname /home/aimybbe/bash/test.sh)
    echo $var2
    
更专业的字符串截取方法:

示例:testfile.tar.gz

a)获取后缀名
你想截取 tar.gz
    filename=testfile.tar.gz
    file=${filename#*.}
    echo $file
你想截取 gz
    filename=testfile.tar.gz
    file=${filename##*.}
    echo $file
说明:
这里的${filename##*.}什么意思呢?在 ${ } 中输入环境变量名称,两个##(或一个#),然后是通配符 ("*.")。
然后,bash 取得 filename,找到从字符串 "testfile.tar.gz"开始处开始、且匹配通配符 "*."的最长子字符串(或最短),然后将其从字符串的开始处截去。
注意:
1.#意思是从字符串的开始处开始截取。
2.两个##代表匹配的最大长度,一个#代表匹配的最小长度(也就是说这里不是一个#匹配一个‘.’)

b)获取文件名称(也就是去除后缀名)
你想截取testfile.tar
    filename=testfile.tar.gz
    file=${filename%.*}
    echo $file
你想截取testfile
    filename=testfile.tar.gz
    file=${filename%%.*}
    echo $file    
注意:
1.这个方法和上面原理相同%就是从末尾字符串开始截取,%%就是最大长度,%就是最小长度

c)截取任意的字符
你想截取file
    filename=testfile.tar.gz
    file=${filename:4:4}
    echo $file
    
你想截取test
    filename=testfile.tar.gz
    file=${filename:0:4}
    echo $file
说明:
格式为${filename::}第一个':'后面的数字是字符串的索引从左边开始,索引从0开始,第二个':'后面的数字是长度,两处的数字都是十进制数值。

分享到:
评论

相关推荐

    unix字符串截取(总结)

    ### Unix字符串截取方法详解 在Unix环境下进行字符串截取是一项常见的操作需求,尤其是在处理文本文件、日志分析等场景中。本文将详细介绍几种常用的字符串截取方法:`cut`命令、`sed`命令以及`expr`命令,并通过...

    BASH 中的字符串处理

    三、字符串截取 - `${var}`:输出整个字符串。 - `${var:offset}`:从offset位置开始截取字符串。 - `${var:offset:length}`:从offset位置开始截取length个字符。 例如: ```bash str="Example String" echo ${...

    shell中字符串截取

    ### Shell中字符串截取 在Shell脚本编程中,对字符串进行截取是常见的操作之一。通过对字符串的处理,可以实现各种数据解析、文件名提取等实用功能。本文将详细介绍几种常用的Shell中字符串截取方法及其应用场景。 ...

    Linux字符串截取

    Linux 字符串截取 Linux 字符串截取方法很多实用,下面我们将详细介绍 Linux 字符串截取的方法。 一、Linux shell 截取字符变量的前 8 位 在 Linux 中,有多种方法可以截取字符变量的前 8 位。下面是其中的一些:...

    Shell字符串截取的详细方法

    本文将详细介绍如何在Shell中进行字符串截取,包括截取指定字数、按指定的字符串截取以及按指定要求分割字符串。 一、截取指定字数 1. 使用`expr substr`命令: ```bash expr substr "$a" 1 8 ``` 这个命令会...

    shell字符串截取报错:Bad substitution的解决

    shell进行字符串截取 运行 ${GIT_COMMIT:0:6}报错: /tmp/jenkins7505855461406722507.sh: 4: /tmp/jenkins7505855461406722507.sh: Bad substitution 原因:两种shell语言解释器 bash和dash 查看当前/bin/sh ...

    shell编程中的字符串截取方法小结

    在Shell编程中,字符串操作是十分常见的任务,其中包括字符串截取。本文主要总结了三种不同的字符串截取方法:截取字符变量的前8位、按指定的字符串截取以及按照指定要求分割字符串。 首先,我们来看如何截取字符...

    shell 字符串操作

    子字符串截取** - **${string:position}**: 从指定位置开始截取字符串。 - 示例: ```bash str="Hello World" echo "${str:6}" # 输出: World ``` - **${string:position:length}**: 从指定位置开始截取指定...

    linux 字符串操作

    在 Linux 中,可以使用 Bash 内置的字符串替换功能或者 `awk` 和 `sed` 命令来进行字符串替换。 1. **使用 `${variable//pattern/replacement}`:** ```bash $ echo ${var//_/} get_thelengthofme ``` `${...

    Bash Shell字符串操作小结

    本文将对Bash Shell字符串操作进行详细的总结,包括取长度、查找位置、选取与截取子串、字符串替换以及比较和连接等方法。 1. **取长度** 取得字符串长度有两种方式。第一种是使用`expr length`命令,如`expr ...

    shell 批量处理 字符串指令行

    这篇博客“shell批量处理字符串指令行”可能探讨了如何利用shell的特性来处理字符串,包括查找、替换、截取等操作。 首先,让我们了解一些基本的shell字符串处理命令: 1. **变量赋值**:在shell中,我们可以通过`...

    shell中字符串处理方

    ### Shell中的字符串处理方法 #### 引言 在Shell编程中,字符串...无论是简单的字符串截取还是更复杂的文本分析任务,这些技巧都能提供强大的支持。希望本文介绍的内容能帮助你在日常的Shell编程工作中更加得心应手。

    Shell脚本实现查找字符串中某字符最后出现的位置

    需要对字符串查找其中某个字符最后出现的位置,这个在PHP (strrpos)或者Perl (rindex)里面都有现成函数可用的功能,在Shell里面居然一时想不出个道道来。在论坛上发贴也没人解答(不知道是问题太简单还是真的很高深...

    Linux Shell 截取字符串的方法示例

    首先,我们有几种基本的截取字符串的方法,它们都基于`${string: start:length}`这种格式,其中`string`是你要操作的字符串,`start`是起始位置,`length`是截取的长度。如果省略`length`,则会从`start`位置截取到...

    Shell 字符串拼接的实现示例

    1. 字符串声明 概述 字符串的基本操作 脚本 1 # 声明字符串 str01=str01 echo ${str01} # 单引号也可以 # 不过后面的例子, 通常是用 双引号, 具体原因, 以后会解释\nstr02='str02' echo ${str02} # 对引号的转义,...

    Linux Bash脚本大全.pdf

    - **字符串操作:** Bash提供了丰富的字符串操作方法,包括截取、替换、连接等。 - **参数替换:** 通过特定的模式匹配和替换字符串中的内容,例如`${string#pattern}`去除字符串开头的模式。 #### 六、进阶主题 - ...

Global site tag (gtag.js) - Google Analytics