返回顶部
首页 > 资讯 > 操作系统 >linux shell字符串截取的详细总结(实用!)
  • 593
分享到

linux shell字符串截取的详细总结(实用!)

摘要

目录一、字符串变量的截取操作1.从指定位置(index)截取固定长度2.截取指定字符串(子字符串)左边的字符3.截取指定字符串(子字符串)右边的字符二、用cut命令截取(适合处理管道流或行文本字符)补充:使用%和%%:截

目录
  • 一、字符串变量的截取操作
    • 1.从指定位置(index)截取固定长度
    • 2.截取指定字符串(子字符串)左边的字符
    • 3.截取指定字符串(子字符串)右边的字符
  • 二、用cut命令截取(适合处理管道流或行文本字符)
    • 补充:使用%和%%:截取的是指定字符前边内容
      • 总结

        一、字符串变量的截取操作

        对字符串变量的截取操作一般都是通过${操作符}的方式进行,如下:

        1.从指定位置(index)截取固定长度

        格式:${string:start:length}

        其中,string 是要截取的字符串,start 是起始位置(下标从 0 开始计数),length 是要截取的长度(省略的话表示直到字符串的末尾)

        例如:

        str_time='2022-02-01 12:30:58'
        date_no=${str_time:0:10}     #截取前面10位字符:2022-01-01
        date_mon=${str_time:5:2}    #从前面第6位开始截取2位字符:02
        date_time=${str_time:0-8}    #截取后面8位字符:12:30:58
        date_hh=${str_time:0-8:2}    #截取后面8位字符的前面两位:12

        2.截取指定字符串(子字符串)左边的字符

        格式1:${string%substr*}                          #匹配从右往左第一个substr

        格式2:${string%%substr*}                       #匹配从右往左最后一个substr

        说明:上面%的运算实际上可以理解为,删除substr以及substr右边的任意字符串,*号在substr右边,从而得到substr左边剩余字符串。  格式1和格式2的区别是匹配substr的位置

        例如:

        v_str='/app/logs/133.38.112.177_202204111015.log'
        echo ${v_str%}
        #截取从左往右最后个'/' 右边的字符:133.38.112.177_202204111015.log
        echo ${v_str##*/}

        注意:用%和#截取字符串的用法,比较容易忘记容易混淆。

        有个小技巧加以区别

        键盘上#号在$符号的左边,所以是操作并删除左边字符,所以*在substr左边,一个#号代表取第一个substr(从左往右):${string#*substr}

        键盘上%号在$符号的右边,所以是操作并删除右边字符,所以*在substr的右边,一个%代表取第一个substr(从右往左):${string%substr*} 

        二、用cut命令截取(适合处理管道流或行文本字符)

        格式:cut OPTION... [FILE]

        cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

        如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

        OPTION:

        • -b :以字节为单位选取指定的字节数
        • -c :以字符为单位选取指定的字符数
        • -d :指定分隔符(默认是tab)将字符串分为多个区域,一般与-f参数一起使用
        • -f :与-d一起使用,指定选取哪个区域
        • -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除

        用法:

        例如:处理test.txt文件,截取每一行的指定字符

        $cat test.txt
        a_202204110214_10.251.82.225
        b_202204110215_10.251.82.223
        b_202204110212_10.251.82.226
        c_202204110214_10.251.82.228
        
        -b选项:
        
        $ cut -b 1,3 test.txt #截取1,3字节
        
        a2
        b2
        b2
        c2
        
        $ cut -b 1-3 test.txt #截取1到3字节
        
        a_2
        b_2
        b_2
        c_2
        
        -c选项:
        
        $ cut -c 1,3 test.txt #截取1,3字符
        
        a2
        b2
        b2
        c2
        
        $ cut -c 1-3 test.txt #截取1到3字符
        
        a_2
        b_2
        b_2
        c_2
        
        -d -f选项:
        
        $ cut -d'_' -f3 test.txt #以下划线分割,取第三个区域字符
        
        10.251.82.225
        10.251.82.223
        10.251.82.226
        10.251.82.228
        
        $ cat test.txt | cut -d'_' -f3 #结合管道使用效果一样

        补充:使用%和%%:截取的是指定字符前边内容

        val=“hello++world++shell”
        
        echo ${val%++*}
        # 删除最后一个 ++ 后边字符,截取前边剩下的内容
        # 输出: hello++world
        
        echo ${val%%++*}
        # 删除第一个 ++ 后边字符,只截取保留第一个 ++ 前边的内容
        # 输出: hello

        示例 截取文件名字,去掉后缀

        str_file="123.hello.JSON"
        
        echo ${str_file%.*}
        # 删除最后一个 . 后边的json,截取123.hello
        # 输出: 123.hello

        总结

        到此这篇关于linux shell字符串截取的文章就介绍到这了,更多相关linux shell字符串截取内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

        --结束END--

        本文标题: linux shell字符串截取的详细总结(实用!)

        本文链接: https://lsjlt.com/news/33477.html(转载时请注明来源链接)

        有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

        猜你喜欢
        • linux shell字符串截取的详细总结(实用!)
          目录一、字符串变量的截取操作1.从指定位置(index)截取固定长度2.截取指定字符串(子字符串)左边的字符3.截取指定字符串(子字符串)右边的字符二、用cut命令截取(适合处理管道流或行文本字符)补充:使用%和%%:截...
          99+
          2022-07-27
          linux shell字符串截取 shell提取字符串指定的内容 shell正则表达式截取字符串
        • linux shell字符串截取的详细总结(实用!)
          目录一、字符串变量的截取操作1.从指定位置(index)截取固定长度2.截取指定字符串(子字符串)左边的字符3.截取指定字符串(子字符串)右边的字符二、用cut命令截取(适合处理管道...
          99+
          2024-04-02
        • Shell字符串截取的详细方法
          一、Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 82.echo $a|awk ‘{print substr(,1,8)}'3.echo $...
          99+
          2022-06-04
          字符串 方法 详细
        • Shell脚本字符串截取方法总结
          本篇内容介绍了“Shell脚本字符串截取方法总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!假设有变量 var=http://www.aa...
          99+
          2023-06-09
        • Shell字符串截取的实现方法(非常详细)
          Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取。 从指定位置开始截取 这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串。 既然需要指定起始位...
          99+
          2022-06-04
          Shell 字符串截取
        • Shell脚本8种字符串截取方法总结
          Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 echo ${var#*//} ...
          99+
          2022-06-04
          字符串 脚本 方法
        • Linux Shell 截取字符串的方法示例
          shell中截取字符串的方法很多 ${var#*/} ${var##*/} ${var%} echo "substr : [${substr}]" 执行结果: string : [http://www.fen...
          99+
          2022-06-04
          Shell 截取字符串
        • JavaScript实现字符串截取的三个方法总结
          目录substring()substr()slice()substring()和substr()的区别方法补充在 JavaScript 中,可...
          99+
          2023-02-27
          JavaScript实现字符串截取方法 JavaScript字符串截取 JavaScript字符串
        • Shell字符串截取如何实现
          这篇文章主要讲解了“Shell字符串截取如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell字符串截取如何实现”吧!Shell 截取字符串通常有两种方式:从指定位置开始截取和从指...
          99+
          2023-06-09
        • 怎么在Linux中使用Shell 截取字符串
          这篇文章给大家介绍怎么在Linux中使用Shell 截取字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。shell中截取字符串的方法很多${var#*/}${var##*/}${var%}echo &qu...
          99+
          2023-06-09
        • shell编程中的字符串截取方法小结
          一、Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}' 3....
          99+
          2022-06-04
          小结 字符串 方法
        • Oracle中字符串截取常用方法总结【推荐】
          substr 函数:截取字符串  语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找。...
          99+
          2024-04-02
        • Shell中的字符串截取的方法
          本篇内容主要讲解“Shell中的字符串截取的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Shell中的字符串截取的方法”吧!一.从左向右截取最后一个string后的字符串:${variab...
          99+
          2023-06-05
        • java 字符串截取的实例详解
          java 字符串截取的实例详解题目 在java中,字符串“abcd”与字符串“ab你好”的长度是一样,都是四个字符。 但对应的字节数不同,一个汉字占两个字节。 定义一个方法,按照指定的字节数来取子串。 如:对于“ab你好”,如果取三个字节,...
          99+
          2023-05-31
          java 字符串 截取
        • Shell字符串截取的方法介绍
          这篇文章主要讲解了“Shell字符串截取的方法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell字符串截取的方法介绍”吧!一、Linux shell 截取字符变量的前8位,有方法如...
          99+
          2023-06-09
        • Shell获取字符串长度的多种方法总结
          前言 我们在日常工作中,对于求字符串操作在shell脚本中很常用,实现的方法有很多种,下面就来给大家归纳、汇总了求字符串的几种可能方法,话不多说了,来一起看看详细的介绍吧。 方法如下: 【方法一】:利用$...
          99+
          2022-06-04
          字符串 长度 多种
        • linux中shell字符串操作的详细介绍
          本篇内容主要讲解“linux中shell字符串操作的详细介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中shell字符串操作的详细介绍”吧!在做shell批处理程序时候,经常会涉及...
          99+
          2023-06-09
        • 如何使用shell编程中的字符串截取
          本篇内容介绍了“如何使用shell编程中的字符串截取”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Gnu Linux shell 截取字...
          99+
          2023-06-09
        • python 字符串常用方法超详细梳理总结
          目录字符串是什么?字符串常用方法1.find()2.index()3.startswith()4.endswith()5.count()6.join()7.upper()8.lowe...
          99+
          2024-04-02
        • MySQL 中的字段截取与字符串截取方法详解
          系列文章目录 文章目录 系列文章目录前言一、字段截取:二、字符串截取:总结 前言 在 MySQL 数据库中,有时我们需要截取字段或字符串的一部分进行查询、展示或处理。本文将介绍 MySQL 中常用的字段截取和字符串截取方法,...
          99+
          2023-08-17
          mysql 数据库
        软考高级职称资格查询
        编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
        • 官方手机版

        • 微信公众号

        • 商务合作