首页 > 其他分享 >Bash 字符串处理

Bash 字符串处理

时间:2023-08-29 09:11:23浏览次数:32  
标签:string start 处理 substring substr 字符串 Bash replacement

一、截取

语法格式 说明
${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。

${string#*substr}

从 string 字符串第一次出现 *substr 的位置开始,截取 *substr 右边的所有字符。
${string##*substr} 从 string 字符串最后一次出现 *substr 的位置开始,截取 *substr 右边的所有字符。
${string%*substr} 从 string 字符串第一次出现 *substr 的位置开始,截取 *substr 左边的所有字符。
${string%%*substr} 从 string 字符串最后一次出现 *substr 的位置开始,截取 *substr 左边的所有字符。

 

二、替换

 

语法格式 说明
${string/substring/replacement} 使用$replacement, 来代替第一个匹配的$substring
${string//substring/replacement} 使用$replacement, 代替所有匹配的$substring
${string/#substring/replacement} 如果$string的前缀匹配$substring, 那么就用$replacement来代替匹配到的$substring
${string/%substring/replacement} 如果$string的后缀匹配$substring, 那么就用$replacement来代替匹配到的$substring

 

三、字符串数组

Shell 数组用括号来表示,元素用"空格"符号分割开;

3.1 使用空格生成数组

将字符串列表转变为数组,只需要在前面加(),例如:arr=(string)  echo ${arr[@]}

3.2 使用其他字符,把字符串分割成数组

如果需要按指定符号分割成数组,那么需要把指定符号替换成空格

1)这个想法是使用字符串替换:

string="1:2:3:4:5"
set -f                      # avoid globbing (expansion of *).
array=(${string//:/ })
for i in "${!array[@]}"
do
    echo "$i=>${array[i]}"
done

 

将$ substring的所有匹配项替换为空格,然后使用替换的字符串初始化数组:

2 使用 tr 配合

t="one,two,three"
a=($(echo "$t" | tr ',' '\n'))
echo "${a[2]}"

3.3 数组操作

1)分隔后的全部数组

${arr[@]}

2)分隔后的每一项

${arr[0]} ${arr[1]} ...

3)分割后的数组长度

${#arr[@]}

4)存储整个索引值

${!arr[@]}

 

标签:string,start,处理,substring,substr,字符串,Bash,replacement
From: https://www.cnblogs.com/xuehuafeixuan/p/17663841.html

相关文章

  • 图像处理与分析编程实践
      日期2022-10-29  打开图像,显示图像,灰度化,二值化,存储图像,缩放图像,观察其分辨率,降低灰度分辨率两种模式,观察图像变化;原图,像素尺寸:700x350  如见显示图像,效果图如下:  灰度化后得到的图片如下:  二值化后得到图片如下:  图片放大10倍后,得到的图片局部如下:  图片缩小1......
  • 一类字符串解析题目的思考
    一类字符串解析题目的思考相关题目最近整理发现,某些机考场景比较喜欢对复杂字符串做解析,例如:394.字符串解码1190.反转每对括号间的子串726.原子的数量特征其具体的表现为,给出一个字符串,给出一个基本结构字符串,例如{abc},是一个三明治(肉夹馍)结构,与扁平化json类似......
  • Lnton羚通视频算法算力云平台关于pandas 处理什么样的数据?
    pandas数据表格的表示 想存储一些 Titanic 乘客数据,知道姓名,年龄,性别等;df=pd.DataFrame({"Name":["Braund,Mr.OwenHarris","Allen,Mr.WilliamHenry","Bonnell,Miss.Elizabeth",......
  • bash: ./gradlew: Permission denied 报错
    问题在Ubuntu的Terminal命令行中执行./gradlew命令报错bash:./gradlew:Permissiondenied解决方案chmod+xgradlew其实就是因为没有权限了,用ls-l查看是否有对应的平台的该执行文件是否有权限执行,如果没有权限的话可以执行chmod+xgradlew或者chmod777gradlew......
  • sqlserver 从数据源左侧截取到遇到特殊字符的最短的子字符串
    selectdbo.sjGetPreStr('1234^5*6/-33_','[]-_=+*&^')    ===>1234Createfunction[dbo].[sjGetPreStr](@strvarchar(1000),@pointArrvarchar(100))returnsvarchar(1000)asbegindeclare@resvarchar(1000)=''......
  • DWR util.js 整理(DWR 处理各种form表单Select/option,table等,
    /********************/util.js包含一些有用的函数function,用于在客户端页面调用.主要功能如下:代码$()获得页面参数值addOptionsandremoveAllOptions初始化下拉框addRowsandremoveAllRows填充表格getText取得text属性值getValue取得form表......
  • 爬虫异常处理之如何处理连接丢失和数据存储异常
    在爬虫开发过程中,我们可能会遇到各种异常情况,如连接丢失、数据存储异常等。本文将介绍如何处理这些异常,并提供具体的解决代码。我们将以Python语言为例,使用requests库进行网络请求和sqlite3库进行数据存储。1.处理连接丢失连接丢失可能是由于网络不稳定、目标网站不可用等原因导致......
  • 前端大数精度处理方案
    问题在我们常见的JavaScript数字运算中,小数和大数都是会让我们比较头疼的两个数据类型。在大数运算中,由于number类型的数字长度限制,我们经常会遇到超出范围的情况。比如:后端给前端返回一个数字类型的id,但是前端对这个id不做任何处理,直接使用到下一个给后端请求的时候,接......
  • python 高效处理EXCEL对比
    #coding=utf-8importxlwingsasxwimportpandasaspdimporttime#记录打开表单开始时间start_open_time=time.time()#指定不显示地打开Excel,读取Excel文件app=xw.App(visible=False,add_book=False)wb=app.books.open('D:/PYTHON/TEST_CODE/Book300s.xlsx')#......
  • SpringMVC3的ResponseBody返回字符串乱码问题解决
    SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,但是当返回值是String的时候,中文会乱码 原因是因为其中字符串转换和对象转换用的是两个转换器,而String的转换器中固定了转换编码为"ISO-8859-1" 网上也很多种解决方法,有通过配置Bean编码的,也有自己重写转......