SHELL字符串提取

这篇具有很好参考价值的文章主要介绍了SHELL字符串提取。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取。

一、从指定位置开始截取,Shell 同时支持从左和从右两种计数方式

1.从字符串左边开始计数

此方法需要提供位置参数和长度参数,如${string:start:length},string 是要截取的字符串,start 是起始位置(省略的话表示从0开始),length 是要截取的长度(省略的话表示直到字符串的末尾)。

shell取某个字符串后面的内容,linux,运维,服务器

 2.从字符串右边开始计数

从字符串的右边开始计数,那么截取字符串的具体格式如下:${string:0-start:length},位置参数是0-start ,这是固定写法。需要注意的是,不管从左边还是从右边开始计数,截取方向都是从左到右。

shell取某个字符串后面的内容,linux,运维,服务器

上图第三种输出其实属于第一种情况,表示从头截取到(保留后三位) 

二、从指定字符(子字符串)开始截取

这种截取方式无法指定字符串长度,只能从指定字符(子字符串)截取到字符串末尾。Shell 可以截取指定字符(子字符串)右边的所有字符,也可以截取左边的所有字符。

1. 使用 # 号截取右边字符

使用#号可以截取指定字符(或者子字符串)右边的所有字符,具体格式如:${string#*chars} ,其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串),*是通配符的一种,表示任意长度的字符串。*chars连起来使用的意思是:忽略左边的所有字符,直到遇见 chars(chars 不会被截取)。

shell取某个字符串后面的内容,linux,运维,服务器

 很容易发现,如果不用*匹配,可以将字符串写全。如果字符串中有多个相同的子串,那么匹配到第一个子串就结束了。如果希望直到最后一个指定字符(子字符串)再匹配结束,那么可以使用##,具体格式为:${string##*chars}

shell取某个字符串后面的内容,linux,运维,服务器

 2. 使用 % 截取左边字符

使用%号可以截取指定字符左边的所有字符(子字符串),具体格式如下:${string%chars*}

请注意*的位置,因为要截取 chars 左边的字符,而忽略 chars 右边的字符,所以*应该位于 chars 的右侧。

shell取某个字符串后面的内容,linux,运维,服务器

同样的 如果字符串中有多个相同的子串,那么匹配到第一个子串就结束了。如果希望直到最后一个指定字符(子字符串)再匹配结束,那么可以使用##,具体格式为:${string%%*chars}

shell取某个字符串后面的内容,linux,运维,服务器

熟练掌握这几种对字符串的操作,一定会使你的shell更加精简高效。文章来源地址https://www.toymoban.com/news/detail-627196.html

到了这里,关于SHELL字符串提取的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • shell 几种字符串加解密方法

    第一种:〔 Python 与 Bash Shell 的结合 〕 这个命令会让你输入一个字符串,然后会再输出一串加密了的数字。 加密代码[照直输入]: python -c \\\'print reduce(lambda a,b: a*256+ord(b), raw_input(\\\"string: \\\"), 0)\\\' 解密代码[数字后+P]: dc -e 输出的数字P 第二种:〔 应该是纯 Bash Shell,含 VIM 的 xx

    2024年01月18日
    浏览(38)
  • linux获取字符串最后几位,Shell截取字符串的8种方法

    Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. echo ${var#*/} 其中 var 是变量名,# 号是运算符,*/ 表示从左边开始删除第一个 / 号及左边的所有字符 即删除 http:// 结果是 :www.aaa.com/123.htm echo ${var##*/} ##*/ 表示从左边开始删除最后(最右边)一个 / 号

    2024年02月13日
    浏览(30)
  • BASH shell脚本篇3——字符串处理

    这篇文章介绍下BASH shell中的字符串处理的相关命令。之前有介绍过shell的其它命令,请参考: BASH shell脚本篇1——基本命令 BASH shell脚本篇2——条件命令 Bash字符串也是一种数据类型,它用于表示文本而不是数字,它是一组可能还包含数字的字符的组合。如果数字想要表示为

    2024年02月07日
    浏览(41)
  • 盘点Shell脚本8种字符串截取方法

    这篇文章主要介绍了Shell脚本8种字符串截取方法总结,每个方法给出了实例代码和操作结果,一目了然,需要的朋友可以参考下 Linux 的字符串截取很有用。有八种方法。 假设有变量 var=http://www.aaa.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符。 代码如下: echo ${var#*//} 其中

    2024年02月14日
    浏览(36)
  • ChatGPT:字符串操作问题——提取包含括号的字符串中的题干内容

    String title = p.text().split(“(”)[0];为什么会报错 ChatGPT: 在这段代码中,您正在使用Java处理一个字符串(假设是HTML或文本),尝试将其分割成两部分,其中一个是从左括号\\\"(\\\"之前的内容。这段代码的目的是提取标题,但可能会出现一些错误,具体取决于输入字符串和代码的上

    2024年02月07日
    浏览(24)
  • 【linux】 shell 之 字符串 -z, -n 判断

    -n : 字符串长度不等于 0 为真 ,助记符 no zero , example : -z : 字符串长度等于 0 为真 ,助记符 zero , example : 需要注意的是,在[]中,使用-z 或-n 判断字符串长度时,变量要加双引号 。 举例说明: 加了双引号才能正常判断是否为空: 使用了双中括号就不用了双引号

    2024年01月21日
    浏览(28)
  • 查找目录中所有内容文本中不含某个特定字符串的文件列表

    查找目录中所有内容中不含某个特定字符串的文件的列表 -type f 表示只查找文件; !表示对匹配条件进行取反,即不含特定字符串; {} ;  将每个被找到的文件作为参数传递给find后面的grep命令,其中: 花括号是 find 命令使用的占位符,用于知道在何处插入当前正在使用的文

    2024年02月19日
    浏览(32)
  • 【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

    🎊专栏【玩转Linux操作】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Counting Stars 】 欢迎并且感谢大家指出小吉的问题🥰 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用

    2024年02月11日
    浏览(34)
  • linux的shell script判断用户输入的字符串,判断主机端口开通情况

    判断输入的字符串是否是hello 图一运行报错 检查发下,elif  判断里面少个引号,哎,现在小白到了,一看就会,一写就错的时候了,好像现在案例比较简单,行数较少。 案例二 if 结合test 判断主机端口 802,2,21,21,25是否通过,明天吧

    2024年02月06日
    浏览(33)
  • 测牛学堂:2023软件测试linux系统学习之shell脚本的运算符(字符串运算符)

    shell的逻辑运算符 shell 中的逻辑运算符有两个。 表示逻辑且,运算符两边的结果都是true,才会返回true || 表示逻辑或,运算符两边的结果有一个为true,则为true 他们的使用场景和布尔运算的很像,只是写代码的形式不一样。 逻辑运算符两边需要用[[]] 来包裹。 代码示例:逻

    2023年04月25日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包