shell编程(七)之字符串处理
字符串切片
${var:offset:number}
取字符串的最右侧几个字符:
${var: -length} 注意: 冒号后必须有一个空白字符
#!/bin/bash
var="chengkaihua"
echo $var
# 显示字符串右侧偏移两个字符取三个字符
echo ${var::} # eng
echo ${var: -} # hua
基于模式取子串:
${var#*word}: 其中word可以是指定的任意字符;功能:自左向右,查找var变量所存储的字符串中第一次出现的word,
删除字符串开头至第一次出现word字符之间的所有字符
${var##*word}:同上,不过删除的是字符串开头至最后一次由word指定的字符之间的所有内容
${var%word*}:其中word可以是指定的任意字符,功能:自右向左,查找var变量所存储的字符串中第一次出现的word,
删除字符串最后一个字符向左至第一次出现word字符之间的所有字符
${var%%word*}:同上,只不过删除字符串最右侧的字符向左至最后一次出现word字符之间的所有字符
示例: url=http://www.magedu.com:80
${url##*:}
${url%%:*}
查找替换:
${var/pattern/substi}: 查找var所表示的字符串中,第一次被pattern所匹配到的字符串,以substi替换之
${var//pattern/substi}: 查找var所表示的字符串中,所有能被pattern所匹配到的字符串,以substi替换之
查找并删除:
${var/pattern}: 查找var所表示的字符串中,删除第一次被pattern所匹配到的字符串
${var//pattern}:
${/var/#pattern}:
${var/%pattern}:
字符大小写转换:
${var^^}: 把var中的所有小写字母转换为大写
${var,,}: 把var中的所有大写字母转换为小写
变量赋值:
${var:-value}: 如果var为空或未设置,那么返回value;否则,则返回var的值
${var:=value}: 如果var为空或未设置,那么返回value,并将value赋值给var;否则,则返回var的值
${var:+value}: 如果var不空,则返回value
${var:?error_info}: 如果var为空或未设置,那就返回error_info;否则,则返回var的值
#!/bin/bash
var="chengkaihua"
echo $var
# 显示字符串右侧偏移两个字符取三个字符
echo ${var::} # eng
echo ${var: -} # hua
echo ${var#*a} # ihua
echo ${var##*a} #
echo ${var%a*} # chengkaihu
echo ${var%%a*} # chengk echo ${var^^} # 小写字母转换为大写
echo ${var,,} # 大写字母转换为小写 echo ${name:-alen} # alen
echo $name #
echo ${name:=alen} # alen
echo $name # alen echo ${name1:?"name1为空或未设置"}
shell编程(七)之字符串处理的更多相关文章
- shell编程—注释、字符串和数组(四)
shell注释 以#作为注释符号 shell中没有多行注释,只能一行加一个#号 字符串操作 1.拼接字符串 2.获取字符串长度 string=“khjf” echo ${#string} 3.提取子字 ...
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
- (七)shell编程学习
1.shell程序练习:创建一个dir文件夹,在dir文件夹里再创建一个cd.c文件 首先vim hello.sh 2.shell中的变量定义和引用 (1)变量定义和初始化.shell是弱类型语言(语 ...
- linux学习(七)Shell编程中的变量
目录 shell编程的建立 shell的hello world! Shell的环境变量 使用和设置环境变量 Shell的系统变量 用户自定义变量 @(Shell编程) shell编程的建立 [root ...
- shell编程系列19--文本处理三剑客之awk中的字符串函数
shell编程系列19--文本处理三剑客之awk中的字符串函数 字符串函数对照表(上) 函数名 解释 函数返回值 length(str) 计算字符串长度 整数长度值 index(str1,str2) ...
- shell编程系列4--有类型变量:字符串、只读类型、整数、数组
shell编程系列4--有类型变量:字符串.只读类型.整数.数组 有类型变量总结: declare命令和typeset命令两者等价 declare.typeset命令都是用来定义变量类型的 decla ...
- Shell编程笔记
Shell编程笔记与Windows下熟悉的批处理类似,也可以将一些重复性的命令操作写成一个脚本方便处理. 修改别人的脚本,运行后遇到个问题 setenv: command not found 查证 ...
- Linux 与 unix shell编程指南——学习笔记
第一章 文件安全与权限 文件访问方式:读,写,执行. 针对用户:文件属主,同组用户,其它用户. 文件权限位最前面的字符代表文件类型,常用的如 d 目录:l 符号链 ...
- 快速掌握Shell编程
作者原创作品,转载请注明出处 (一)Shell编程概述 1.1 shell简述 Shell编程和JavaScript非常相似,Shell和JavaScript都是弱类型语言,同时也都是解释型语言.解释 ...
随机推荐
- poj1416
#include<iostream> using namespace std; int target,datanum; ],temproad[]; int N,flag,maxsum; ] ...
- MongoDB Schema Design
Normalization: ...... Relationships: One-to-One relationship: 1-to-many: many-to-many:
- zabbix监控特定脚本有无生成
1.由于权限问题,zabbix不能直接查看其它用户目录下的文件,修改sudo文件使zabbix用户能以root身份执行test命令 visudo zabbix ALL=(root) NOPASSWD: ...
- redis集群及相关的使用
从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接. 1.所有的redis节点彼此互 ...
- JavaScript 当前URL取参返回字典
getParam : function(){ return (key, strURL = window.location.search) => new RegExp("(^|\\?|& ...
- Sublime 个人常用快捷键
Sublime 个人常用快捷键 Hot Key Alt + F3 选中文本所以有相同项;同多次Ctrl + D Ctrl + L 选中整行,继续按可继续选 Ctrl + Shift + M 选择括号内 ...
- PostgreSQL 9.5.x的架构图及外存图
- react知识总结
用于构建用户界面的 JavaScript 库 JSX语法 style let style = { color: 'r'+'ed', fontSize: '30px' } let jsx = <d ...
- 如何共享联盟cookie
接上一篇阿里妈妈账号登录状态如何长时间保存 既然我们获取到了cookie, 如果有多个程序都要使用到联盟帐号的时候, 如果不共享cookie, 那么每个程序都需要登录一次, 真的很浪费资源. 如何共享 ...
- 2018软件工程W班第一次助教小结
我是数计学院实验教学中心的一名老师,机缘巧合之下,这个学期跟着汪老师上<软件工程实践>这门课.之前有陆续听说过<构建之法>这本书,记得好像学院还有主办过研讨会.对于这门实践课, ...