博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Bash Shell字符串操作小结
阅读量:5889 次
发布时间:2019-06-19

本文共 1767 字,大约阅读时间需要 5 分钟。

装载自:

1. 取长度

str="abcd"expr length $str   # 4echo ${#str}       # 4expr "$str" : ".*" # 4
好像一般使用第二种

2. 查找子串的位置

str="abc"expr index $str "a"  # 1expr index $str "b"  # 2expr index $str "x"  # 0expr index $str ""   # 0

3. 选取子串

str="abcdef"expr substr "$str" 1 3  # 从第一个位置开始取3个字符, abcexpr substr "$str" 2 5  # 从第二个位置开始取5个字符, bcdef expr substr "$str" 4 5  # 从第四个位置开始取5个字符, defecho ${str:2}           # 从第二个位置开始提取字符串, bcdefecho ${str:2:3}         # 从第二个位置开始提取3个字符, bcdecho ${str:(-6):5}        # 从倒数第二个位置向左提取字符串, abcdeecho ${str:(-4):3}      # 从倒数第二个位置向左提取6个字符, cde

 

4. 截取子串 

str="abbc,def,ghi,abcjkl"echo ${str#a*c}     # 输出,def,ghi,abcjkl  一个井号(#) 表示从左边截取掉最短的匹配 (这里把abbc字串去掉)echo ${str##a*c}    # 输出jkl,             两个井号(##) 表示从左边截取掉最长的匹配 (这里把abbc,def,ghi,abc字串去掉)echo ${str#"a*c"}   # 输出abbc,def,ghi,abcjkl 因为str中没有"a*c"子串echo ${str##"a*c"}  # 输出abbc,def,ghi,abcjkl 同理echo ${str#*a*c*}   # 空echo ${str##*a*c*}  # 空echo ${str#d*f)     # 输出abbc,def,ghi,abcjkl, echo ${str#*d*f}    # 输出,ghi,abcjkl   echo ${str%a*l}     # abbc,def,ghi  一个百分号(%)表示从右边截取最短的匹配 echo ${str%%b*l}    # a             两个百分号表示(%%)表示从右边截取最长的匹配echo ${str%a*c}     # abbc,def,ghi,abcjkl

 可以这样记忆, 井号(#)通常用于表示一个数字,它是放在前面的;百分号(%)卸载数字的后面; 或者这样记忆,在键盘布局中,井号(#)总是位于百分号(%)的左边(即前面)    :-)

5. 字符串替换 

str="apple, tree, apple tree"echo ${str/apple/APPLE}   # 替换第一次出现的appleecho ${str//apple/APPLE}  # 替换所有appleecho ${str/#apple/APPLE}  # 如果字符串str以apple开头,则用APPLE替换它echo ${str/%apple/APPLE}  # 如果字符串str以apple结尾,则用APPLE替换它

 

6. 比较

[[ "a.txt" == a* ]]        # 逻辑真 (pattern matching)[[ "a.txt" =~ .*\.txt ]]   # 逻辑真 (regex matching)[[ "abc" == "abc" ]]       # 逻辑真 (string comparision) [[ "11" < "2" ]]           # 逻辑真 (string comparision), 按ascii值比较
 

7. 连接 

s1="hello"s2="world"echo ${s1}${s2}   # 当然这样写 $s1$s2 也行,但最好加上大括号

 

8. 翻转

转载地址:http://jtysx.baihongyu.com/

你可能感兴趣的文章
mysql书外键_[转] mysql 外键(Foreign Key)的详解和实例
查看>>
mysql存储引擎模式_MySQL存储引擎
查看>>
python入门小游戏代码_【Python】Python代码实现“FlappyBird”小游戏
查看>>
云服务器怎么卸载mysql数据库_mysql 删除数据库脚本
查看>>
mysql 5.5.57互为主从_MYSQL 5.5.18 互为主从配置成功
查看>>
mysql5002_mysql新手进阶02
查看>>
python类 del_全面了解Python类的内置方法
查看>>
前后端传图片用base64好吗_前后端分离 前台传base64的图片 tp5.1.1进行处理
查看>>
java对象的排序_Java对象排序两种方法
查看>>
java jni 原理_使用JNI技术实现Java和C++的交互
查看>>
java 重写system.out_重写System.out.println(String x)方法
查看>>
Ubuntu 12.04安装
查看>>
mysql client命令行选项
查看>>
vc遍历网页表单并自动填写提交 .
查看>>
log4j
查看>>
自定义TabControl
查看>>
配置ORACLE 11g绿色版客户端和PLSQL远程连接环境
查看>>
wordpress wp_head()函数 浏览器顶部 空白28px 解决办法
查看>>
读书笔记:改变人心的技巧
查看>>
MATLAB实现频数表——hist的使用
查看>>