400-650-7353

精品课程

您所在的位置:首页 > IT干货资料 > linux > 【Linux基础知识】shell字符串常见操作

【Linux基础知识】shell字符串常见操作

  • 来源:优就业
  • 2021-09-28 10:42:00
  • 阅读()
  • 分享
  • 手机端入口

字符串内容截取

左侧截取:

${变量名:起始位置:长度}

l截取字符串1234567890,第5位到第8位

[root@host01 ~]# x="1234567890"

[root@host01 ~]# echo ${x:4:4}

5678

l截取字符串1234567890,第3位到最后一位

[root@host01 ~]# x="1234567890"

[root@host01 ~]# echo ${x:2}

34567890

[root@host01 ~]# x="1234567890"

[root@host01 ~]# echo ${#x}

10

[root@host01 ~]# echo ${x:2:${#x}}

34567890

截取字符串1234567890的前5位

[root@host01 ~]# x="1234567890"

[root@host01 ~]# echo ${x:0:5}

12345

[root@host01 ~]# echo ${x::5}

12345

l截取字符串“中华人民共和国”的第3位到第4位

[root@host01 ~]# x="中华人民共和国"

[root@host01 ~]# echo ${x:2:2}

人民

右侧截取:

${变量名:0-起始位置:长度}

 右侧截取字符串“中华人民共和国”的右侧第3位到最后一位

[root@host01 ~]# x="中华人民共和国"

[root@host01 ~]# echo ${x:0-3}

共和国

右侧截取字符串“中华人民共和国”,从右侧第3位开始截取2位

[root@host01 ~]# x="中华人民共和国"

[root@host01 ~]# echo ${x:0-3:2}

共和

从字符串1234567890的右边第5位开始截取3位

[root@host01 ~]# x="1234567890"

[root@host01 ~]# echo ${x:5:3}

678

字符串内容替换

1. 只替换第一个匹配结果:${变量名/old/new}

从字符串1234512345中将第一个3替换成xxx

[root@backup ~]# i="1234512345"

[root@backup ~]# echo ${i/3/xxx}

12xxx4512345

2. 替换全部匹配结果:${变量名//old/new}

从字符串1234512345中将所有的3替换成xxx

[root@backup ~]# i="1234512345"

[root@backup ~]# echo ${i//3/xxx}

12xxx4512xxx45

从字符串1234512345中将所有的3替换成空字符串

[root@backup ~]# i="1234512345"

[root@backup ~]# echo ${i//3/}

12451245

字符串内容删除

1. 从左向右,最短匹配删除:${变量名#*关键词}

从字符串http://www.sina.com.cn中将冒号“:”左边的字符串去除

[root@backup ~]# i="http://www.sina.com.cn"

[root@backup ~]# echo ${i#*:}

//www.sina.com.cn

从字符串http://www.sina.com.cn中将第一个“.”左边的字符串去除

[root@backup ~]# i="http://www.sina.com.cn"

[root@backup ~]# echo ${i#*.}

sina.com.cn

2. 从左向右,最长匹配删除:${变量名##*关键词}

从字符串http://www.sina.com.cn中将“http://”左边的字符串去除

[root@backup ~]# i="http://www.sina.com.cn"

[root@backup ~]# echo ${i##*\/}

www.sina.com.cn

从字符串http://www.sina.com.cn中将最后一个“.”左边的字符串去除

[root@backup ~]# i="http://www.sina.com.cn"

[root@backup ~]# echo ${i##*.}

cn

从字符串http://www.sina.com.cn中将最后一个“w”左边的字符串去除

[root@backup ~]# i="http://www.sina.com.cn"

[root@backup ~]# echo ${i##*w}

.sina.com.cn

3. 从右向左,最短匹配删除:${变量名%关键词*}

从字符串http://www.sina.com.cn中将从右边算起第一个“.”左边的字符串去除

[root@backup ~]# i="http://www.sina.com.cn"

[root@backup ~]# echo ${i%.*}

http://www.sina.com

计算当前磁盘“/”根分区的磁盘使用率

[root@backup ~]# df

Filesystem 1K-blocks Used Available Use% Mounted on

devtmpfs 487168 0 487168 0% /dev

tmpfs 497828 0 497828 0% /dev/shm

tmpfs 497828 7636 490192 2% /run

tmpfs 497828 0 497828 0% /sys/fs/cgroup

/dev/sda3 11523072 1674024 9849048 15% /

/dev/sda1 520868 156640 364228 31% /boot

tmpfs 99568 0 99568 0% /run/user/0

将上面红字标识的15%提取出来赋值给变量i

[root@backup ~]# df|grep "/$"

/dev/sda3 11523072 1674100 9848972 15% /

[root@backup ~]# df|grep "/$"|awk '{print $5}'

15%

[root@backup ~]# i=$(df|grep "/$"|awk '{print $5}')

[root@backup ~]# echo $i

15%

将字符串“15%”中的“%”去掉

[root@backup ~]# echo ${i%\%*}

15

4. 从右向左,最长匹配删除:${变量名%%关键词}

从字符串http://www.sina.com.cn中将从右边算起最后一个“.”左边的字符串去除

[root@backup ~]# i="http://www.sina.com.cn"

[root@backup ~]# echo ${i%%.*}

http://www

字符串变量初始值处理

可以使用echo ${变量名:-其它值}的方式输出变量的值,如果变量存在就输出,如果不存在就输出设定的“其它值”。

如果变量x存在,打印变量x的值;如果变量x不存在打印其它设定的值

[root@host01 ~]# x="1234567890"

[root@host01 ~]# echo ${x:-abc}

1234567890

[root@host01 ~]# unset x

[root@host01 ~]# echo ${x:-abc}

abc

学习疑问申请解答
您的姓名
您的电话
意向课程
 

中公优就业

IT小助手

扫描上方二维码添加好友,请备注:599,享学习福利。

>>本文地址:
注:本站稿件未经许可不得转载,转载请保留出处及源文件地址。

推荐阅读

优就业:ujiuye

关注中公优就业官方微信

  • 关注微信回复关键词“大礼包”,享学习福利
QQ交流群
在线疑问解答
(加群备注“网站”)
IT培训交流群 加入群聊 +
软件测试 加入群聊 +
全链路UI/UE设计 加入群聊 +
Python+人工智能 加入群聊 +
互联网营销 加入群聊 +
Java开发 加入群聊 +
PHP开发 加入群聊 +
VR/AR游戏开发 加入群聊 +
大前端 加入群聊 +
大数据 加入群聊 +
Linux云计算 加入群聊 +
优就业官方微信
扫码回复关键词“大礼包”
享学习福利

测一测
你适合学哪门IT技术?

1 您的年龄

2 您的学历

3 您更想做哪个方向的工作?

获取测试结果
 
课程资料、活动优惠 领取通道