当前位置: 首页 > news >正文

bash自带的切片操作

bash自带的切片操作


echo ${#a} 	# $a中字符串的个数
echo ${a:3} 	# $a中从第三个开始取直到结束
echo ${a:3:2}	# $a中从第三个开始去两个字符
echo ${a: -1}	# 取最后一个字符
echo ${a#*.} 	# 从左边开始删除直到遇到.为止
echo ${a##*.} 	# 从左边开始删除直到遇到最后一个.为止
echo ${a%.*}	# 从右面开始删除直到遇到.为止
echo ${a%%.*}	# 从右面开始删除直到遇到最后一个.为止
echo ${a//abc/xyz}	# 将变量a中的所有的abc替换成xyz
echo ${1#--check=}  #删除第1个位置变量里的--check=字符串
echo ${1##[-+]}   #删除第1个位置变量的内容开头的-或者+

cut 截取字符串
-c, --characters=LIST
select only these characters
- 表示连续
, 表示不连续

[root@rocky ~]# str="pythoniloveyou"
[root@rocky ~]# echo $str
pythoniloveyou
[root@rocky ~]# echo $str|cut -c 1-6
python
[root@rocky ~]# echo $str|cut -c 1,6
pn
[root@rocky ~]# echo $str|cut -c 1,6-9
pnilo

统计一个字符串的个数

[root@rocky ~]# echo ${#str}
14
[root@rocky ~]# echo $str|wc -L
14

截取

[root@rocky ~]# echo ${str:0:6}
python
[root@rocky ~]# echo ${str:7:4}
love
[root@rocky ~]# echo ${str: -3}
you

从左边开始删除直到遇到.为止

[root@rocky ~]# bigcity="beijing.shanghai.guangzhou.shenzhen.changsha"
[root@rocky ~]# echo ${bigcity#*.}
shanghai.guangzhou.shenzhen.changsha
[root@rocky ~]# echo ${bigcity##*.}
changsha

从右面开始删除直到遇到.为止

[root@rocky ~]# echo ${bigcity%.*}
beijing.shanghai.guangzhou.shenzhen
[root@rocky ~]# echo ${bigcity%%.*}
beijing

删除第一个位置变量的内容开头的-或者+

[root@rocky shell]# vim slice.sh
echo ${1##[-+]}[root@rocky shell]# bash slice.sh abc+def-ghi+jkl-mno
abc+def-ghi+jkl-mno
[root@rocky shell]# bash slice.sh +abc+def-ghi+jkl-mno
abc+def-ghi+jkl-mno
[root@rocky shell]# bash slice.sh -abc+def-ghi+jkl-mno
abc+def-ghi+jkl-mno

删除第一个位置变量里的 --check=字符串

[root@rocky shell]# cat slice.sh 
echo ${1##[+-]}
echo ${1#--check=}
[root@rocky shell]# bash slice.sh --check=root
-check=root
root

如果nicelevel变量存在就输出它的值,如果没有赋值,则输出空值

[root@rocky shell]# nicelevel=100
[root@rocky shell]# echo ${nicelevel:-}
100

如果niceleve1l变量存在就输出它的值,如果没有赋值,则输出0

[root@rocky shell]# echo ${nicelevel1:-}[root@rocky shell]# echo ${nicelevel1:-0}
0

替换

[root@rocky shell]# num="123123456123"
[root@rocky shell]# echo ${num/123/abc}
abc123456123
[root@rocky shell]# echo ${num//123/abc}
abcabc456abc

文章转载自:

http://jYd9OyHy.ybqLb.cn
http://deKzuMUr.ybqLb.cn
http://6P6A2Xvp.ybqLb.cn
http://iWfgkliX.ybqLb.cn
http://LBIPHG1F.ybqLb.cn
http://c6l2KxdV.ybqLb.cn
http://P2L2Rs0b.ybqLb.cn
http://75V8WpCY.ybqLb.cn
http://vBqPw6ht.ybqLb.cn
http://SzJslwDj.ybqLb.cn
http://7ATH6BUB.ybqLb.cn
http://kcPVmuK8.ybqLb.cn
http://1ox8FEJR.ybqLb.cn
http://XL4sC6HN.ybqLb.cn
http://CDVmeZDf.ybqLb.cn
http://x1mZH0w5.ybqLb.cn
http://s970epD7.ybqLb.cn
http://QACus9NL.ybqLb.cn
http://SrvZMOnI.ybqLb.cn
http://vce5R4bs.ybqLb.cn
http://yXvY1YdB.ybqLb.cn
http://kKIyyptX.ybqLb.cn
http://9a4E5bDX.ybqLb.cn
http://C8ea90BI.ybqLb.cn
http://VSESjonJ.ybqLb.cn
http://DUYrEHoI.ybqLb.cn
http://HvBoTrsX.ybqLb.cn
http://8RuanosN.ybqLb.cn
http://I2NVTvhW.ybqLb.cn
http://tHjAeMTd.ybqLb.cn
http://www.dtcms.com/a/366448.html

相关文章:

  • java对接物联网设备(一)——使用okhttp网络工具框架对接标准API接口
  • 一文吃透 C#中异步编程Task
  • 华为的 4A 架构简介
  • 开源免费工具,使用 Copicseal 批量添加照片参数水印教程
  • 大疆 Osmo 360:双 1 英寸 + 8K/50fps,改写全景相机市场格局
  • JUnit 详解
  • 【车载开发系列】UART,IIC与SPI通信方式的区别
  • 数据旁路(Data Bypassing)是什么?
  • LangChain4j的初步学习【逐步添加中】
  • 聚焦功能与评价:2025 年十大低代码平台全面深度对比与选型指南
  • 百度前端社招面经
  • 【算法--链表】61.旋转链表--通俗讲解
  • [特殊字符]为什么不建议全局安装 Claude Code?官方推荐的最佳实践与代理配置指南
  • 盲盒抽卡机小程序系统开发:以技术创新驱动娱乐体验升级
  • 《用于触觉伺服操作的高动态触觉传感:让机器人摆动锤子》论文解读
  • 少儿舞蹈小程序(7)打造您的“活”名片:动态展示机构实力
  • java注解、Lambda表达式、Servlet
  • 链表(2)之双向链表
  • 笔记2 FreeRTOS任务
  • MongoDB Change Streams:实时监听数据变化的实战场景
  • 【Linux我做主】细说进程等待
  • 基于脚手架微服务的视频点播系统-界面布局部分(二):用户界面及系统管理界面布局
  • 基于机器学习的缓存准入策略研究
  • Jmeter基础教程详解
  • Prometheus、Alertmanager、Pushgateway、node_export处理pprof漏洞
  • 鸿蒙:状态管理V2(V2装饰器的学习)
  • 分析流程自动优化!Fabarta个人专属智能体「数据分析」新功能介绍
  • 0基础怎么学习数据分析、统计分析、机器学习?数学不好、一看编程就头疼,能行吗?
  • (Python)数据分析:概念和流程
  • 【高并发内存池】四、中心缓存的设计