bash变量中字符串的操作

1.字符串的切片

${#VAR}:返回字符类型变量的变量值的长度

${VAR:offset}:返回字符型变量中第"offset"位置之后的内容,不包括第offset位,offset取值范围为:0-$[$[#VAR]-1]

${VAR:offset:number}:返回字符型变量中第"offset"个字符后开始长度为number的字符部分

${VAR: -lenth}:取字符型变量字符串最右侧的"length"个字符(注意空格)

示例:

2.基于模式(PATTERN)来取字符串

${VER#*PATTERN} :自左而右,查找VAR变量所储存的字符串中,第一次被PATTERN匹配的字符,删除从字符串开始到PATTERN匹配的字符之间的所有字符

${VAR##*PATTERN}:自左而右,查找VAR变量所储存的字符串中,所有被PATTERN匹配的字符,删除从字符串开始到最后一次PATTERN匹配的字符之间的所有字符

${VAR%PATTERN*}:自右而左,查找VAR变量所储存的字符串中,第一次被PATTERN匹配的字符,删除从字符串结尾到PATTERN匹配的字符之间的所有字符

${VAR%%PATTERN*}:自右而左,查找VAR变量所储存的字符串中,所有被PATTERN匹配的字符,删除从字符串结尾到最后一次PATTERN匹配的字符之间的所有字符

示例:

3.查找替换

${VAR/PATTERN/SUBSTRING}:在VAR变量中,自左而右查找第一个被PATTERN匹配的内容并替换成SUBSTRING

${VAR//PATTERN/SUBSTRING}:在VAR变量中,自左而右查找所有被PATTERN匹配的内容并替换成SUBSTRING

${VAR/#PATTERN/SUBSTRING}: 在VAR变量中查找行首匹配PATTERN的内容,将匹配的结果替换成SUBSTRING

${VAR/%PATTERN/SUBSTRING}: 在VAR变量中查找行尾匹配PATTERN的内容,将匹配的结果替换成SUBSTRING

示例:

4.查找删除

${VAR/PATTERN}:从左而右第一个

${VAR//PATTERN}:从左而右所有

${VAR/#PATTERN}:从行首

${VAR/%PATTERN}:从行尾

示例:

5.字符串大小写转换:

${VAR^^}:将变量当中的所有的小写字母转换成大写字母

${VAR,,}:大写转换为小写

示例:

6.变量的赋值

${VAR:-value}:如果变量VAR为空值或者变量未被定义,那么直接返回value中的值,否则返回变量中的值

${VAR:+value}:如果变量VAR已经定义且不为空,则返回value的值

${VAR:=value}:如果VAR为空值或变量未被定义,那么直接返回value中的值,并且将value的值赋给变量VAR;否则返回变量VAR的值

示例:

7.变量的间接引用

如果变量A的值为变量B的名,从A引用B的值的方法,称为变量的间接引用,如

VAR1=VAR2,VAR2=hellolink

bash提供了这样的间接变量的引用方法:

eval MYVAR=\$$VAR1

示例:

时间: 2024-08-01 11:46:48

bash变量中字符串的操作的相关文章

C中字符串常见操作

#include <stdio.h> #include <ctype.h> #include <string.h> #include <stdlib.h> #include <wchar.h> // #include <stddef.h> int main(void){ char str1[]="This is the first string"; char str2[]="That is the oth

#8 bash变量中的字符串处理

一个完整的程序,一般包括4类文件: 二进制文件(可执行文件).头和库文件.帮助文件.配置文件: bash--CLI(命令行接口)的一种 bash同样属于完整的应用程序,也有这四类文件: bash的配置文件: 三类: profile类: 为交互式登录的shell进程实现功能初始化的配置文件: bashrc类: 为非交互式登录的shell进程实现功能启动配置的配置文件: logout类: 为交互式登录的shell进程提供终止及清理类功能的配置文件: shell的类型: 交互式登录的shell: 1.

其他文本处理命令以及bash变量中的一些字符串的处理方法

其他的文本处理命令: 1.wc 2.cut命令: cut - 在文件的每一行中提取片断 注意:能够被cut修剪的文件或数据内容,一般是具有某种特定格式或结构的文本文件或数据内容: 如 :/etc/passwd 格式:cut [OPTION]... [FILE]... 常用选项: -d, --delimiter=DELIM:指定在实施修剪操作时所使用的字段分隔符号,默认是TAB(空白字符): -f, --fields=LIST:根据指定的字段分隔符号来指定要保留的字段编号列表: LIST可以称为字

javascript中字符串常用操作总结、JS字符串操作大全

字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温习查阅. String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样. var str = 'abc'; console.log(str.length);

D语言中字符串的操作

字符串的操作在软件开发中是特别重要的一个事情,因为基本上的编程都会使用到字符串,字符串操作的好坏决定着一个语言的好与差.在我做过的一个项目中曾经就出现过字符串操作性能问题. D语言字符串有 string,wstring,dstring三种类型,在D语言中字符串是使用字符数组定义的,三种类型分别对应char,wchar,dchar.char只有一个字节,wchar为双字节,dchar为三字节.对字符串的操作也相当于是对数组的操作,这跟其它语言不一样,C++中字符串是以string类来进行封装,它的

js--javascript中字符串常用操作总结、JS字符串操作大全

字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温习查阅. String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不一样. var str = 'abc'; console.log(str.length);

Python中字符串的操作

在python中字符串的包围的引号有三种,单引号,双引号,三引号,其中,单引号和双引号完全相同,在python中单引号也可完成转义工作 >>>print('doesn\'t \n it?') doesn't it? 但经常性的,一般使用 单双引号+转义更为普遍 >>>print("doesn't \n it?") doesn't  it? 三引号的使用,三引号(三个单引号或者三个双引号)用来座位注释,文档说明,类描述,用于比较广泛,他可以包含单引号,

驱动中字符串的操作

/如果本文有不对的地方,望即时指点! 字符串的初始化 定义一个UNICODE_STRING类型的变量,这只是一个空的结构体而已,我们并没有给它分配任何的内存.如果直接对其进行字符串拷贝等操作,肯定会 引起异常的,当我们定义这样类型的一个变量,我们应该就把它看作一个WCHAR型的指针,没有“new”空间,所以我们必须去“new”空间给它. typedef struct { USHORT Length; USHORT MaximumLength; PWCHAR Buffer; }UNICODE_ST

javascript中字符串常规操作

string对象属性: 1.length 获取字符串的长度,需要注意的是,js中中文每个汉字也只代表一个字符. var myName="xulinjun"; console.log(myName.length); // 8 string对象方法: 1.charAt() stringObject.charAt(index) 可以用来获取指定位置的字符串,index为字符串索引值,从0开始到string.length-1,若不在此范围,则返回一个空字符串. var a="hell