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内置字符串常用操作的更多相关文章

  1. linux shell字符串内置的常用操作(获取长度、查找、替换)

    在编写shell程序时,经常会涉及到字符串相关操作.有许多命令语句,如awk,sed都能够做字符串各种操作. 事实上shell内置一系列操作符号,能够达到相似效果,使用内部操作符会省略启动外部程序等时 ...

  2. Shell内置命令

    主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1  bash内置命 ...

  3. thinkPHP内置字符串截取msubstr函数用法详解

    作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...

  4. bash的内置字符串处理工具

    bash内置字符串处理工具: 1.字符串切片: ${var:offset:number} 取字符串的子串: ${var:  -length} 取字符串的最右侧的length个字符.注意:冒号右侧必须有 ...

  5. linux 获取shell内置命令帮助信息 help xx

    shell,命令解释器 shell内置命令有cd/umask/pwd等 help shell内置命令适用于所有用户获取shell内置命令的帮助信息help umaskhelp if

  6. Python 的内置字符串方法(收藏专用)

    Python 的内置字符串方法(收藏专用) method 字符串 string python3.x  python 4.7k 次阅读  ·  读完需要 44 分钟 5 字符串处理是非常常用的技能,但 ...

  7. linux中shell内置命令和外置命令

    shell内置命令 无法通过which或者whereis去查找命令的位置 例如cd,cp这些命令是shell解释器内置的命令 当shell内置命令传入shell解释器,shell解释器通过内核获取相关 ...

  8. javascript中字符串常用操作整理

    javascript中字符串常用操作整理 字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用 ...

  9. linux shell 字符串常用操作

    1.shell内置的字符串操作 表达式 含义 ${#string} $string的长度 ${string:position} string中,从位置$position开始提取字符串 ${string ...

  10. javascript:面向对象和常见内置对象及操作

    本文内容: 面向对象 常见内置对象及操作 首发日期:2018-05-11 面向对象: JavaScript 是面向对象的编程语言 (OOP).OOP 语言使我们有能力定义自己的对象和变量类型. 对象是 ...

随机推荐

  1. CMU DLSys 课程笔记 2 - ML Refresher / Softmax Regression

    CMU DLSys 课程笔记 2 - ML Refresher / Softmax Regression 本节 Slides | 本节课程视频 这一节课是对机器学习内容的一个复习,以 Softmax ...

  2. 去年最火的 JS 开源项目「GitHub 热点速览」

    近日,「Best of JS」发布了过去一年在 GitHub 上 Star 数增速最快的 JavaScript 开源项目(2023 JavaScript Rising Stars),前 10 的开源项 ...

  3. PythonAnywhere 部署Flask项目

    一. 注册账号 官网:https://www.pythonanywhere.com/ 二. 将GitHub上的项目发送至PythonAnywhere 三.配置环境及运行 git clone https ...

  4. LeetCode 947. 移除最多的同行或同列石头 并查集

    传送门 思路 干货太干就不太好理解了,以下会有点话痨( ̄▽ ̄)" 首先题目给了一个二维stones数组,存储每个石子的坐标,因为在同行或者同列的石子最终可以被取到只剩下一个,那么我们将同行同 ...

  5. 文心一言 VS 讯飞星火 VS chatgpt (33)-- 算法导论5.2 5题

    五.设A[1..n]是由n个不同数构成的数列.如果i<j且A[i]>A[j],则称(i,j)对为A的一个逆序对(inversion).(参看思考题2-4 中更多关于逆序对的例子.)假设A的 ...

  6. 华为云GaussDB两大数据库通过中国信通院多项评测

    摘要:权威认可!华为云GaussDB两大数据库通过中国信通院多项评测. 本文分享自华为云社区<官宣!华为云GaussDB两大数据库通过中国信通院多项评测>,作者: GaussDB 数据库 ...

  7. 成为一个合格程序员所必备的三种常见LeetCode排序算法

    排序算法是一种通过特定的算法因式将一组或多组数据按照既定模式进行重新排序的方法.通过排序,我们可以得到一个新的序列,该序列遵循一定的规则并展现出一定的规律.经过排序处理后的数据可以更方便地进行筛选和计 ...

  8. 你不知道的vue3:使用runWithContext实现在非 setup 期间使用inject

    前言 日常开发时有些特殊的场景需要在非 setup 期间调用inject函数,比如app中使用provide注入的配置信息需要在发送http请求时带上传给后端.对此我们希望不在每个发起请求的地方去修改 ...

  9. Clion 中 Rust 插件开启 WSL 调试

    Rust Linux 配置 wsl 中执行命令: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 按照可能会卡住,需要在本 ...

  10. Qt 如何配置CLion标准控制台输出?

    CMake 相关问题: 即CMakeLists.txt文件中,在add_executable添加了WIN32.即当使用了WIN32标识后,就去掉了控制台,那么自然就没有信息打印出来了. # for e ...