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)

大家都在看

  • Linux快速安装流量监控工具(实用版)

    前言: Linux流量监控工具,在此我推荐两种分别为: 1、nload(推荐)因为个人看着舒服点😂 2、iftop 你可以选择上面两种中的任何一种。下面是这两个版本的简介和安装教程…

    Linux 2023年5月27日
    095
  • PYTORCH: 60分钟 | TENSORS

    Tensor是一种特殊的数据结构,非常类似于数组和矩阵。在PyTorch中,我们使用tensor编码模型的输入和输出,以及模型的参数。Tensor类似于Numpy的数组,除了ten…

    Linux 2023年6月16日
    0178
  • redis研究记录

    redis研究记录 1 概述目前多数的NoSql数据库本质上都是键值对形式,Redis也不例外。作为缓存数据库的一种,和Memcached相比,有以下几种主要的优点:(1)速度上,…

    Linux 2023年5月28日
    079
  • 罗德岛

    自从转行以后就建博了,一直没有动手写内容,今天开始写。 主要记录技术上的积累和项目上的工作感悟。 这里就是罗德岛,就在这里跳。 Original: https://www.cnbl…

    Linux 2023年6月6日
    089
  • 《拉钩课程 – 重学操作系统 – 计算机组成原理》

    1、芯片是怎么工作的呢?电能供给给芯片,芯片中的一种电子元件晶振(也就是石英晶体)通电后产生震荡,震荡会产生频率稳定的脉冲信号。通常这是一种高频的脉冲信号,每秒可达百万次。然后,我…

    Linux 2023年5月27日
    093
  • 概率算法_二项分布和泊松分布

    本次函数有 1、阶乘 2、计算组合数C(n,x) 3、二项概率分布 4、泊松分布 以下是历史函数 继续概率,本次是二项分布和泊松分布,这个两个还是挺好玩的,可以作为预测函数用,因为…

    Linux 2023年6月6日
    098
  • flask操作(增删改查操作)

    增加数据 from .models import Goods from app.extensions import db goods1 = Goods(name=’魅族18s’, …

    Linux 2023年6月8日
    0103
  • SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 后端篇(二): 整合 Redis(常用工具类、缓存)、整合邮件发送功能

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 — 前端篇(一):搭建基本环境:https://www.cnblogs.c…

    Linux 2023年6月11日
    0110
  • Linux系统查看hosts配置与dns域名配置

    ;gutter:true;方法1:for i incat /etc/hosts | grep -v ^$ | grep -v “127.0.0.1” | g…

    Linux 2023年6月13日
    087
  • Linux NFS服务配置

    bash;gutter:true; 服务端配置: 1. 安装nfs-utils和rpcbind</p> <h1>yum install nfs-utils …

    Linux 2023年6月13日
    076
  • NoteOfMySQL-14-日志管理

    一、MySQL日志 日志是MySQL数据库的重要组成部分,日志文件记录了MySQL数据库的日常操作和错误信息,可以通过分析这些日志文件了解MySQL数据库的运行情况。MySQL数据…

    Linux 2023年6月14日
    090
  • docker image ls 提示 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

    现象描述 上次在统信Linux上费了很大力气才装上docker,当时记得是可以用了。但今天登录系统后执行 docker image ls却提示上面的问题,但切换到root账户再执行…

    Linux 2023年6月8日
    099
  • shell 中的EOF

    EOF是(END Of File)的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d 就代表EOF。EOF一般会配合cat能…

    Linux 2023年5月28日
    0109
  • 使用 Docker 安装 Zabbix,并配置自定义监控项

    镜像下载、域名解析、时间同步请点击阿里云开源镜像站 一、Zabbix 简介 Zabbix 可以用来监控各种网络参数,来保证服务器和系统的安全运行。并且 Zabbix 还提供了灵活的…

    Linux 2023年5月27日
    0140
  • centos7自动化ssh免密

    在做免密前要先手动生成公钥: ssh-keygen -t rsa 敲击三次回车即可 写一个shell脚本: expect命令可以获取到命令返回结果并且根据指定内容进行自动发送相应字…

    Linux 2023年6月6日
    0144
  • GDT表实现

    GDT是保护模式下的内存段登记表。 段界限计算 段界限用 20 个二进制位来表示。只不过此段界限只是个单位量,它的单位要么是字节,要么是 4K,这是由描述符中的G位来指 定的。由于…

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