shell脚本字符串截取方法整理

首先先声明一个变量str,下面演示以该变量为例:

str='https://www.baidu.com/about.html'

1.#号截取,删除左边字符,保留右边字符

echo ${str#*//}

说明:

  • str为变量
  • #号是运算符
  • *//表示从左边开始删除第一个 //号及左边的所有字符

结果: www.baidu.com/about.html

2.## 号截取,删除左边字符,保留右边字符

echo ${str##*/}

说明:

  • ##*/表示从左边开始删除最后(最右边)一个 /号以及左边所有的字符

结果: about.html

3.%号截取,删除右边字符,保留左边字符

echo ${str%/*}

说明:

  • %/*表示从右边开始,删除第一个 /以及右边所有字符

结果: https://www.baidu.com

4.%% 号截取,删除右边字符,保留左边字符

echo ${str%%/*}

说明:

  • %%/*表示从右边开始,删除最后(最左边)一个 /号以及右边的所有字符

结果: https:

5.截取从左边指定位置开始,以及指定截取的字符个数

echo ${str:0:5}

说明:

  • 0表示从第一个字符开始截取,5表示截取5个字符

结果: https

6.截取从左边指定位置开始,直到结束

echo ${str:8}

说明:

  • 表示从左边第9个字符开始(由于下标是从0开始),一直到结束。

结果: www.baidu.com/about.html

7.截取从右边指定位置开始,以及指定截取的字符个数

echo ${str:0-10:10}

说明:

  • 0-10表示从右边第10个字符开始,截取右边10个字符的长度。

结果: about.html

说明,如果截取的右边字符超过右边的总长度,那么也是返回右边的所有字符,如:

echo ${str:0-10:100}

结果: about.html

8.截取从右边指定位置开始,直到结束

echo ${str:0-10}

说明:

  • 表示从右边第10个字符位置开始,直到结束

结果: about.html

Original: https://www.cnblogs.com/moqiutao/p/16365422.html
Author: 风雨后见彩虹
Title: shell脚本字符串截取方法整理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/529557/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 冒泡排序

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月8日
    0129
  • 整理常用的 vim 命令

    vim 是一款功能强大的文本编辑器,它是Linux下常用的编辑器之一,对于熟练掌握了 vim 的人来说,用它编辑文件,方便又快捷,能极大的提高工作效率 vim 功能强大,对应的命令…

    Linux 2023年6月13日
    0123
  • 顺序栈

    #pragma once #ifndef _SEQSTACK_ #define _SEQSTACK_ #include using namespace std; typedef i…

    Linux 2023年6月7日
    0100
  • [编译] 8、在Linux下搭建 stm8 单片机的开发烧写环境(makefile版)

    一、SDCC(Small Device C Compiler)编译环境搭建 1.1、下载 1.2、编译 1.3、测试 二、Hex2Bin+命令行烧写工具配置使用 2.1、下载工具安…

    Linux 2023年6月8日
    0144
  • SpringMVC底层——请求参数处理流程描述

    在DispatcherServlet.java的doDispatch方法中,springmvc通过handlermapping里面找哪个handler能处理请求,handler封装…

    Linux 2023年6月6日
    0162
  • 记录一次shell脚本环境全局变量在函数内部生效问题

    背景 计划核对内网IP的使用情况,所以写了个小脚本扫描有哪些IP还在使用。执行脚本过程中发现函数中一直获取不到变量的值,排查后将结论记录下来。 问题现象 已经配置了全局变量,但是在…

    Linux 2023年6月14日
    0133
  • WPF 制作一个占用文件的测试工具

    我在开发软件进行测试时,需要测试拖入的文件被占用时软件的行为,于是就做了一个文件占用工具,此工具可以将某个文件进行占用,以及获取某个文件被哪个进程占用 先给大家看一下效果: 以上是…

    Linux 2023年6月6日
    0141
  • 软件危机复习

    没有银弹的含义 软件危机:由于软件规模越来越大,软件复杂性越来越高,可靠性问题也越来越突出,传统的个人设计,个人实现的方式不再满足要求,迫切需要改变软件生产方式,提高软件开发效率,…

    Linux 2023年6月8日
    0107
  • Shell添加任务计划

    添加任务计划,每30分钟自动执行 /data1/scripts/chk_sds.sh mkdir /data1/scripts echo -e "if [ \ps -C …

    Linux 2023年5月28日
    094
  • C语言传指针类型的形参

    今天在牛客网上做C语言专项练习题,遇到一个”函数传指针类型的形参”的题,我做错了,正确的为下面代码: #include <string.h> #…

    Linux 2023年6月13日
    097
  • 阿里云IoT流转到postgresql数据库方案

    之前写过一篇如使用阿里云上部署.NET 3.1自定义运行时的文章,吐槽一下,虽然现在已经2022年了,但是阿里云函数计算的支持依然停留在.NET Core 2.1,更新缓慢,由于程…

    Linux 2023年6月6日
    0123
  • 最新超详细VMware下CentOS系统安装

    一、了解CentOS系统 CentOS是免费的、开源的、可以重新分发的开源操作系统,CentOS(Community Enterprise Operating System,中文意…

    Linux 2023年6月15日
    0154
  • 最小化安装killall不可用

    最小化安装killall不可用 最小化安装 Centos7.4后,发现killall命令不可用使用了以下命令,查看软件包名: yum search killall 查找后发现应使用…

    Linux 2023年6月13日
    0116
  • Python垃圾回收和Linux Copy-on-Write机制

    前言 在口袋助理看到了其他部门的同事针对Python2内存占用做的一点优化工作,自己比较感兴趣,遂记录下。 Linux fork简介 fork是Linux提供的创建子进程的系统调用…

    Linux 2023年6月7日
    0144
  • Debian10 命令行启动

    打开 default grub 配置 $ sudo vi /etc/default/grub 修改以下3处内容 保存修改 更新grub配置 $ sudo update-grub 设…

    Linux 2023年5月27日
    0125
  • Mac 睡眠唤醒 不睡眠 问题

    问题 之前一直有夜晚睡觉前电脑💻关机的习惯,主要是想着电脑也跟人一样♨️要休息😂。然后最近想着自己 Mac 干脆每天睡眠💤算了,省得每天开关机麻烦,所以就最近这段时间每次夜晚睡觉前…

    Linux 2023年6月7日
    0104
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球