bash自带的切片操作

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
- 表示连续
, 表示不连续

bash 复制代码
[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

统计一个字符串的个数

bash 复制代码
[root@rocky ~]# echo ${#str}
14
[root@rocky ~]# echo $str|wc -L
14

截取

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

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

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

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

bash 复制代码
[root@rocky ~]# echo ${bigcity%.*}
beijing.shanghai.guangzhou.shenzhen
[root@rocky ~]# echo ${bigcity%%.*}
beijing

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

bash 复制代码
[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=字符串

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

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

bash 复制代码
[root@rocky shell]# nicelevel=100
[root@rocky shell]# echo ${nicelevel:-}
100

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

bash 复制代码
[root@rocky shell]# echo ${nicelevel1:-}

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

替换

bash 复制代码
[root@rocky shell]# num="123123456123"
[root@rocky shell]# echo ${num/123/abc}
abc123456123
[root@rocky shell]# echo ${num//123/abc}
abcabc456abc
相关推荐
西阳未落16 小时前
C++基础(21)——内存管理
开发语言·c++·面试
编程武士16 小时前
从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
人工智能·python·yolo·性能优化
我的xiaodoujiao17 小时前
Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium
开发语言·python·测试工具
callJJ17 小时前
从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(2)
java·开发语言·后端·spring·ioc·di
hsjkdhs18 小时前
万字详解C++之构造函数析构函数
开发语言·c++
Lin_Aries_042119 小时前
容器化简单的 Java 应用程序
java·linux·运维·开发语言·docker·容器·rpc
傻啦嘿哟19 小时前
Python SQLite模块:轻量级数据库的实战指南
数据库·python·sqlite
Q_Q51100828519 小时前
python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统
spring boot·python·django·flask·uni-app·node.js·php
XueminXu19 小时前
Python读取MongoDB的JSON字典和列表对象转为字符串
python·mongodb·json·pymongo·mongoclient·isinstance·json.dumps
techdashen20 小时前
12分钟讲解Python核心理念
开发语言·python