linux shell字符串截取

2023-11-07

linux字符串截取很有用,有八种方法

有变量url=https://www.test.com/123.html

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

echo ${url#*//}
#输出
www.test.com/123.html

其中url是变量名,#是运算符,*//表示从左边开始删除第一个//号及左边的所有字符

即删除http://

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

echo ${url##*/}
#输出
123.html

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

即删除https://www.test.com/

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

echo ${url%/*}
#输出
https://www.test.com

%/*表示从右边开始,删除第一个/号及右边的字符

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

echo ${url%%/*}
#输出
https:

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

  1. 从左边开始第几个字符开始,及字符的个数

echo ${url:0:5}
#输出
https

其中0表示左边的第一个字符,5表示字符的总个数

  1. 从左边第几个字符开始,一直到结束

echo ${url:8}
#输出
www.test.com/123.html

其中的8表示左边的第9个字符开始,一直到结束

  1. 从右边的第几个字符开始,及字符的个数

echo ${url:0-8:3}
#输出
123

其中0-8表示右边算起第八个字符开始,3表示字符的个数

  1. 从右边的第几个字符开始,一直到结束

echo ${url:0-8}
#结果
123.html

表示从右边第8个字符碍事,一直到 结束

注意:左边的第一个字符从0开始,右边的第一个字符用0-1表示

总结下

#、##表示从左边删除,一个#表示从左边删除到第一个指定的字符;两个#表示从左边删除到最后一个指定的字符。

% 、%%表示从右边删除,一个%表示从右边删除第一个指定的字符;两个%表示从右边删除到最后一个指定的字符。

删除包括指定的字符串本身。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux shell字符串截取 的相关文章

  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • C语言中如何通过内存地址映射函数名和行号?

    如何用 GCC 中的内存地址映射回函数名称和行号 即假设一个 C 语言原型 void func Get the address of caller maybe this could be avoided MemoryAddress get
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 如何在基于 Linux 的系统上的 C 程序中使用 mqueue?

    如何在基于 Linux 的系统上的 C 程序中使用 mqueue 消息队列 我正在寻找一些好的代码示例 可以展示如何以正确且正确的方式完成此操作 也许是一个操作指南 下面是一个服务器的简单示例 该服务器接收来自客户端的消息 直到收到告诉其停
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • 如何减去两个 gettimeofday 实例?

    我想减去两个 gettimeofday 实例 并以毫秒为单位给出答案 这个想法是 static struct timeval tv gettimeofday tv NULL static struct timeval tv2 gettime
  • waitpid() 的作用是什么?

    有什么用waitpid 它通常用于等待特定进程完成 或者如果您使用特殊标志则更改状态 基于其进程 ID 也称为pid 它还可用于等待一组子进程中的任何一个 无论是来自特定进程组的子进程还是当前进程的任何子进程 See here http l
  • 进程退出后 POSIX 名称信号量不会释放

    我正在尝试使用 POSIX 命名信号量进行跨进程同步 我注意到进程死亡或退出后 信号量仍然被系统打开 在进程 打开它 死亡或退出后是否有办法使其关闭 释放 早期的讨论在这里 当将信号量递减至零的进程崩溃时 如何恢复信号量 https sta
  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • 无法在 Perl 中找到 DBI.pm 模块

    我使用的是 CentOS 并且已经安装了 Perl 5 20 并且默认情况下存在 Perl 5 10 我正在使用 Perl 5 20 版本来执行 Perl 代码 我尝试使用 DBI 模块并收到此错误 root localhost perl
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • 限制 Imagemagick 使用的空间和内存

    我在 Rails 应用程序上使用 Imagemagick 使用 rmagick 但我的服务器 Ubuntu 不是很大 当我启动转换进程时 Imagemagick 占据了我的服务器 30GB HDD 的所有位置 内存 我想限制内存和 tmp
  • 后台分叉无法正常工作[重复]

    这个问题在这里已经有答案了 我运行这个程序 在前景和背景中 int main int pid printf App Start pid d n getpid while 1 pid fork if pid 0 printf Child n
  • vagrant ssh -c 并在连接关闭后保持后台进程运行

    我正在编写一个脚本来启动和后台流浪机器内的进程 似乎每次脚本结束和 ssh 会话结束时 后台进程也会结束 这是我正在运行的命令 vagrant ssh c cd vagrant src nohup python hello py gt he
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • 深入理解Java中的自增

    引言 i 和 i的区别在学习程序设计的时候应该就已经学过 一个是用完再加 一个是加完再用 那么考虑一下下面的代码 int i 0 for int j 0 j lt 100 j i i 这个运行完 i的值应该是多少呢 深入理解自增 上面的代码
  • Java基础语法教学视频,MySql知识体系总结(SQL优化篇

    备注 因为mysql优化器的缘故 与索引顺序不一致 也会触发索引 但实际项目中尽量顺序一致 5 联合索引 但其中一个条件是 gt 6 联合索引 order by where和order by一起使用时 不要跨索引列使用 三 单表sql优化
  • LDO低压差线性稳压器

    LDO 转自 http baike baidu com view 1042146 htm 百科名片 LDO是low dropout regulator 意为低压差线性稳压器 是相对于传统的线性稳压器来说的 传统的线性稳压器 如78xx系列的
  • 元宇宙产业委一届二次全会召开 同步举办共享大会和全球元宇宙大会

    2022全球元宇宙大会 上海站将于8月18 19日在沪召开 央链直播快讯 2022年8月18 19日 由中国移动通信联合会主办 上海市通信管理局联合主办 众视Tech 中移联会展部 中国移动通信联合会元宇宙产业委员会承办 BIC EURON
  • Aop反射机制实现某个参数值 修改

    项目中使用敏感字段的加解密 但是有的是直接在url中拼接的 所以我就想根据一个自定义注解的方式做匹配 修改值 利用反射的机制实现值的修改 以下是具体的代码 依赖aop
  • VSCode顶端文件名多行显示

    VScode默认顶端一行显示所有打开的文件名 1 直接在设置中搜索 多行 在 Workbench Editor Wrap Tabs 前选中即可 2 也可用快捷键 Ctrl P 查看最近浏览文件记录
  • 2023华为od机试 Python 实现【德州扑克】

    前言 本题使用Python解答 如果需要Java代码 请参考 链接 题目 我们可以选择五张牌 它们的范围是 每张牌的大小在2 10之间 或者字母J Q K A 牌花色为红桃 黑桃 梅花 方块四种花色之一 现在一共有6种牌型 牌型1 同花顺
  • 运维体系框架标准化模型简介

    为什么要做标准化 标准化的过程实际上就是对运维对象的识别和建模过程 形成统一的对象模型后 各方在统一的认识下展开有效协作 然后针对不同的运维对象 再抽取出它们所对应的运维场景 接下来才是运维场景的自动化实现 这有点像我们学的面向对象编程的思
  • Fabric.js

    Fabric js是什么 Fabric js 是一个简化HTML5 Canvas开发的Javascript库 Fabric js提供了HTML5 Canvas本身缺失的对象模型 交互层 SVG解析器以及其他一整套工具 它是一个完全开源的项目
  • C中的预编译宏定义

    C中的预编译宏定义 作者 infobillows 发表日期 2007 09 15 21 34 点击数 1507 在将一个C源程序转换为可执行程序的过程中 编译预处理是最初的步骤 这一步骤是由预处理器 preprocessor 来完成的 在源
  • 根据文字长度,设置文字滚动的速度

    div class tips box span class scroll text span div 根据文字长度设置中文滚动时间 const animateTextlength this conference importantInfo
  • pygame模块介绍

    pygame模块介绍 在python中开发游戏 通常会用到pygame这个模块 pygame模块总览 模块 作用 cdrom 管理cdrom设备和音频播放 cursors 加载光标图像 包括标准光标 display 控制显示窗口或屏幕 dr
  • FCN学习:Semantic Segmentation(摘自知乎)

    源文章地址 https zhuanlan zhihu com p 22976342 utm source tuicool utm medium referral FCN学习 Semantic Segmentation 余俊 计算机视觉及深度
  • 计算机图形学年鉴:研究现状、应用和未来

    计算机图形学是支持各种影视特效 三维动画影片 计算机游戏 虚拟现实以及大家手机上各种照片视频美化特效背后的技术基础 在本文中 微软亚洲研究院网络图形组深入解释了图形学的现状 发展和未来 谈及 计算机图形学 可能很多人会觉得很有距离感 或者和
  • 微信小程序弹窗提示:wx.showToast、wx.showModal、wx.showLoading的使用场景与实现

    1 wx showToast 使用场景 常规的提示 没有确定和取消按钮 例 属性 title 提示的内容 icon 显示的图标 合法值有success error loading none image 自定义图标的本地路径 优先级高于ico
  • K8S部署步骤:8-部署Master节点

    kubernetes master节点包含的组件 etcd flannel docker kube apiserver kube scheduler kube controller manager 目前这三个组件需要部署在同一台机器上 ku
  • python面试的3大重点,让你顺利拿到offer!

    5月已经过去大半个月了 马上就要迎来毕业季了 你准备好去面试了么 W3C咨询了不少python爬虫岗位从业者 如果你也打算从事python爬虫岗位 掌握这三个重点 能让你更顺利的get到理想的offer 1 Python 因为面试的是Pyt
  • C++入门——引用(重点!!!)

    文章目录 引用概念 引用特性 常引用 const 使用场景 1 做参数 输出型参数 2 做返回值 引用返回 引用和指针的区别 引用概念 引用不是新定义一个变量 而是给已存在的变量取了一个别名 编译器不会为引用变量开辟内存空间 它和它的引用变
  • springboot+MD5实现注册登录的密码的加密解密

    写在前面 你们好 我是小庄 很高兴能和你们一起学习mybatis 如果您对Java感兴趣的话可关注我的动态 写博文是一种习惯 在这过程中能够梳理知识和巩固知识点 需求 登录和注册的密码涉及到网络安全 对密码的加密能够在一定程度上增加安全性
  • linux shell字符串截取

    linux字符串截取很有用 有八种方法 有变量url https www test com 123 html 号截取 删除左边字符 保留右边字符 echo url 输出 www test com 123 html 其中url是变量名 是运算