[转帖]已整理-shell内置字符串常用操作
https://www.cnblogs.com/reachos/p/16803672.html
bash 里面内置了一些常用的字符串操作;
1、字符串截取
a="abc"
${a:1:1} #字符串截取,从0开始编号,第1个字符开始,截取1个
2、字符串替换
a="aabbcc" #字符串替换
echo ${a/"aa"/88} echo ${变量名/old/new} #替换1个
echo ${变量名//old/new} #替换所有
3、字符串删除

echo ${a#} #掐头
echo ${a%} #去尾
a=`head -1 /etc/passwd` #定义变量
echo ${a#root} #从左往右删除,删除第1个root
echo ${a##*root} #从左往右删除,删除到最后1个root
# echo ${a%bash} #从右往左删除bash前面的字符
bash
# echo ${a%%:*} #从左往左删除: ,直到最后1个:为止
root

应用案例,批量改文件名,把.txt结尾的扩展名变更为.html :
touch abc{1..10}.txt
for i in $(ls *.txt)
do
mv $i ${i%txt}html
done
4、定义变量初值(备用值)
echo ${变量名:-初值}

echo ${p:-123} #定义变量的初始值,如果变量值为空时,就用初始值123,如果变量有值,就用变量自己的值
#a=
#echo ${a:-123} #定义变量的初始值,如果变量值为空时,就用初始值123,如果变量有值,就用变量自己的值
123
#a=10
#echo ${a:-123}
10
[转帖]已整理-shell内置字符串常用操作的更多相关文章
- linux shell字符串内置的常用操作(获取长度、查找、替换)
在编写shell程序时,经常会涉及到字符串相关操作.有许多命令语句,如awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,使用内部操作符会省略启动外部程序等时 ...
- Shell内置命令
主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1 bash内置命 ...
- thinkPHP内置字符串截取msubstr函数用法详解
作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...
- bash的内置字符串处理工具
bash内置字符串处理工具: 1.字符串切片: ${var:offset:number} 取字符串的子串: ${var: -length} 取字符串的最右侧的length个字符.注意:冒号右侧必须有 ...
- linux 获取shell内置命令帮助信息 help xx
shell,命令解释器 shell内置命令有cd/umask/pwd等 help shell内置命令适用于所有用户获取shell内置命令的帮助信息help umaskhelp if
- Python 的内置字符串方法(收藏专用)
Python 的内置字符串方法(收藏专用) method 字符串 string python3.x python 4.7k 次阅读 · 读完需要 44 分钟 5 字符串处理是非常常用的技能,但 ...
- linux中shell内置命令和外置命令
shell内置命令 无法通过which或者whereis去查找命令的位置 例如cd,cp这些命令是shell解释器内置的命令 当shell内置命令传入shell解释器,shell解释器通过内核获取相关 ...
- javascript中字符串常用操作整理
javascript中字符串常用操作整理 字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用 ...
- linux shell 字符串常用操作
1.shell内置的字符串操作 表达式 含义 ${#string} $string的长度 ${string:position} string中,从位置$position开始提取字符串 ${string ...
- javascript:面向对象和常见内置对象及操作
本文内容: 面向对象 常见内置对象及操作 首发日期:2018-05-11 面向对象: JavaScript 是面向对象的编程语言 (OOP).OOP 语言使我们有能力定义自己的对象和变量类型. 对象是 ...
随机推荐
- 一个简单的Python暴力破解网站登录密码脚本
目录: 关键代码解释 完整代码 方法一 运行结果 方法二 运行结果 测试靶机为DVWA,适合DVWA暴力破解模块的Low和Medium等级 关键代码解释 url指定url地址 url = " ...
- 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 05.认识GameMode&自动生成AI角色
斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本篇文章将会讲述UE中Gamemode的基本概念,并在C++中开发GameMode,为游戏设置一个简单的玩法:使 ...
- Redis系列(二):解读redis.conf文件、配置、初步使用
一.解读redis.conf配置文件 # redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位, # 通常的格式就是 1k 5gb 4m 等酱紫: # # 1k =&g ...
- 4种Python中基于字段的不使用元类的ORM实现方法
本文分享自华为云社区<Python中基于字段的不使用元类的ORM实现>,作者: 柠檬味拥抱 . 不使用元类的简单ORM实现 在 Python 中,ORM(Object-Relational ...
- JS的深浅复制,原来如此!
摘要:之所以会出现深浅拷贝的问题,实质上是由于JS对基本类型和引用类型的处理不同. 本文分享自华为云社区<js的深浅复制,一看就明白>,作者: 鑫2020. 浅复制的意思 浅复制是仅仅对数 ...
- vue2升级vue3: TSX Vue 3 Composition API Refs
在vue2时代,$refs 直接操作子组件 this.$refs.gridlayout.$children[index]; 虽然不推荐这么做,但是确实非常好用.但是vue2快速迁移到vue3,之前的这 ...
- 开启一个 A/B 实验到底有多简单?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 火山引擎 A/B 测试平台 DataTester 孵化于字节跳动业务内部,在字节跳动,"万事皆 A/B, ...
- AI 0基础学习,数学名词解析
AI学习过程中,常见的名词解析 中位数 将数据从小到大排序,奇数列,取中间值,偶数列,中间两个值的平均,可做为销售指标 众数 一组数据中,数值出现最多的那个.反映哪款产品,销量最好 平均数 比赛中,去 ...
- PPT 文字穿插
软件文字,添加一个形状 先选形状,再选文字 选择拆分 设置对象格式
- 在 macOS 通过 SSH 访问 Windows 的 WSL2 Ubuntu
配置 Windows 和 WSL2,使得能通过其他电脑远程 SSH 到 WSL2 Ubuntu. 一.Win10 安装 WSL2 Ubuntu 注意,是安装 WSL2,方法参考这个 WSL2 配置 C ...