shell- 字符串处理 、 扩展的脚本技巧 、 正则表达式
字符串截取的方法
方法一:使用${}表达式
格式:${var:起始位置:长度}
方法二:使用expr substr
格式:expr substr "$var" 起始位置 长度
方法三:使用cut工具
格式:echo $var | cut -b 起始位置 结束位置
取目录位置
格式:dirname "字符串"
取文档的基本名称
格式:basename "字符串"
字符串替换的方法
只替换第一个匹配的结果
格式:${var/old/new}
替换全部匹配的结果
格式:${var//old/new}
字符串掐头
从左向右,最短匹配删除
格式:${变量名#*关键词}
从左向右,最长匹配删除
格式:${变量名##*关键词}
字符串去尾
从右向左,最短匹配删除
格式:${变量名%关键词*}
从右向左,最长匹配删除
格式:${变量名%%关键词*}
批量修改文件后缀名
[lin@shidai ~]$ cat mv.sh
#!/bin/bash
for FILE in *.doc
do
mv $FILE ${FILE%.doc}.txt
done
变量初始值的检测及设置
取值,${var:-word}
若变量var已经存在且非null,则返回$var的值
否则返回临时字符串word,变量var值不变
赋值,${var:=word}
若变量var已经存在且非null,则返回$var的值
否则返回字符串word,且把word赋值给var变量
shell数组定义/赋值
方法一:整体赋值
格式:数组名=(value1 value2 value3)
示例:VU=(user1 ftp mail python)
方法二:为单个元素赋值
格式:数组名[下标]=值
示例:VU[0]=ftp,VU[1]=mail,VU[2]=python
输出数组元素
获取单个元素
格式:${数组名[下标]}
获取所有元素
格式:${数组名[@]}
获取数组元素个数(长度)
格式:${#数组名[@]}
获取连续的多个数组元素
格式:${数组名[@]:起始下标:元素个数}
正则表达式
............................
shell- 字符串处理 、 扩展的脚本技巧 、 正则表达式的更多相关文章
- shell及脚本3——正则表达式
一.正则表达式 1.1. 什么是正则表达式 正则表达式是处理字符串的方法,以行为单位,通过一些特殊符号的辅助,让用户可以轻易进行查找.删除.替换某特定字符串的操作. 1.2. 正则表达式与通配符的区别 ...
- Linux脚本shell字符串处理
Linux脚本shell字符串处理,基本都有了,看着搜吧 TLDP教堂 shell中if条件字符串.数字比对,[[ ]]和[ ]区别 Linux 之 shell 比较运算符 Linux Shell编程 ...
- 【转】shell字符串截取
shell字符串的截取的问题: 一.Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr( ...
- shell自动交互之expect脚本_转
转自:linux expect详解(ssh自动登录) shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 ...
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...
- Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式
目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...
- linux shell 字符串操作(长度,查找,替换)详解
linux shell 字符串操作(长度,查找,替换)详解 在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系 ...
- Shell 字符串比较
转自网络 Shell字符串比较 收藏 Shell 中整数比较方法及字符串的比较方法,如等于,不等于,大于,大于等于,小于,等等. 二元比较操作符,比较变量或者比较数字.注意数字与字符串的区别. --- ...
- shell字符串操作详解
shell字符串操作详解的相关资料. 1.shell变量声明的判断 表达式 含义 ${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DE ...
随机推荐
- titlesplit
/** * Created by lkl on 2017/6/26. *///spark-shell --driver-class-path /home/hadoop/test/mysqljdbc.j ...
- Java使用SFTP协议上传、下载文件
http://blog.csdn.net/haidage/article/details/6859716 在自己尝试之后发现以上内容里有坑. 1.关闭连接的时候,必须要sftp.getSession( ...
- [TensorBoard] Name & Variable scope
TF有两个scope, 一个是name_scope一个是variable_scope 第一个程序: with tf.name_scope("hello") as name_scop ...
- 富可视M310刷机包 MIUIV5 红米开发版 闪光 美化 稳定
ROM介绍 MIUI 开发版 4.10.2 ·A2版为功能版(功能比較多.带相机切换和相机声音开关) ·更新最新图库 ·更新最新miui6的720P背板 ·更新miui6最新开机动画 [刷机提示]: ...
- YSQL获取自增ID的四种方法(转发)
YSQL获取自增ID的四种方法(转发) 1. select max(id) from tablename 2.SELECT LAST_INSERT_ID() 函数 LAST_INSERT_ID 是与t ...
- python面向对象-三大特性
python面向对象编程三大特性 小结:前面我们说完了类和对象的关系,相信对类和对象的理解更加透彻..让我们一起去研究面向对象的三大特性吧.... 继承 1.什么继承? 在程序中继承就是事物之间的所属 ...
- 异常could not retrieve snapshot
前两天项目升级,项目部署到生产上之后,报错: could not retrieve snapshot 上网查的结果是: “.hbm.xml中的字段没有与数据库中一样,就是说有些字段在文件中有,但是在数 ...
- 洛谷P1182 数列分段【二分】【贪心】
题目:https://www.luogu.org/problemnew/show/P1182 题意: 有n个数,要分成连续的m段.将每段中的数相加,问之和的最大值的最小值是多少. 思路: 和P1316 ...
- 2018ACM-ICPC焦作区域赛【反思总结】
摸银结束回来,整个人都轻松了. 自CCPC打铁以来的这两个月真的太痛苦了. 俱乐部退役的退役停训的停训,好冷清啊. 前期切题很稳,前四题两个小时1A. 过了四题之后好像心态有点飘,然后开题就慢了,想题 ...
- 线段树 || BZOJ 1112: [POI2008]砖块Klo
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1112 题解: 希望有连续K柱的高度是一样的,就先把1~K的数扔进线段树(线段树的下标就是数值 ...