脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - shell - Shell实现字符串处理的方法详解

Shell实现字符串处理的方法详解

2023-03-02 13:35农民工老王 shell

这篇文章主要为大家详细介绍了Linux Shell中实现字符串处理的方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以了解一下

大小写转化

?
1
2
3
4
5
6
7
8
9
10
11
# 把变量中的第一个字符换成大写
${test^}
 
# 把变量中的所有小写字母,全部替换为大写
${test^^}
 
# 把变量中的第一个字符换成小写
${test,}
 
# 把变量中的所有大写字母,全部替换为小写
${test,,}

示例

?
1
2
3
4
5
6
7
#!/bin/bash
# script file name is test.sh
test="abcDEF"
echo "test^=${test^}"
echo "test^^=${test^^}"
echo "test,=${test,}"
echo "test,,=${test,,}"

Shell实现字符串处理的方法详解

获取字符串长度

?
1
${#string}

替换

整体替换

?
1
2
3
4
5
6
7
8
9
10
11
12
13
# 若变量var为空,则用string来替换此处的值,最常用。
${var:-string}
 
# 若变量var为空,则用string来替换此处的值,把string赋给变量var。
${var:=string}
 
# 若变量var不为空,则用string来替换此处的值。
${var:+string}
 
# 若变量var不为空,则用string来替换此处的值;
# 若变量var为空,则把string输出到标准错误中,并从脚本中退出。
# 常用利用此特性来检查是否设置了变量的值。
${var:?string}

部分替换

?
1
2
3
4
5
# 只替换第1个子串
${var/old/new}
 
# 替换全部子串
${var//old/new}

截取

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 从string字符串的左边第start个字符开始(不包含第start个字符),向右截取到最后,start从0开始;
${string:start}
 
# 从string字符串的左边第start个字符开始(不包含第start个字符),向右截取length个字符;
${string:start:length}
 
# 从string字符串的右边第start个字符开始(包含第start个字符),向右截取到最后,start从1开始;
${string:0-start}
 
# 从string字符串的右边第start个字符开始(包含第start个字符),向右截取length个字符,start从1开始;
${string:0-start:length}
 
# 从string字符串左边第一次出现*chars的位置开始,截取*chars右边的所有字符,不包含chars;
${string#*chars}
 
# 从string字符串左边最后一次出现*chars的位置开始,截取*chars右边的所有字符,不包含chars;
${string##*chars}
 
# 从string字符串右边第一次出现chars*的位置开始,截取chars*左边的所有字符,不包含chars;
${string%chars*}
 
# 从string字符串右边最后一次出现chars*的位置开始,截取chars*左边的所有字符,不包含chars;
${string%%*chars*}

示例

?
1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
# script file name is test.sh
url="https://blog.csdn.net/monarch91"
echo "url=${url}"
echo "url:8=${url:8}"
echo "url:8:4=${url:8:4}"
echo "url:0-8=${url:0-8}"
echo "url:0-8:4=${url:0-8:4}"
echo "url#*c=${url#*c}"
echo "url##*c=${url##*c}"
echo "url%c*=${url%c*}"
echo "url%%c*=${url%%c*}"

Shell实现字符串处理的方法详解

补充

当然,除了以上操作,Shell还有许多字符串操作,下面小编为大家整理了一些,需要的可以参考一下

字符串的拼接

?
1
2
3
4
5
6
7
8
9
10
11
12
str1=www
str2=bilibili
 
string1=$str1$str2              #中间不加别的,直接放一起
string2="$str1 $str2"           #双引号括住,中间可加任意字串
string3=$str1"..."$str2         #整体不加引号,若中间要出现别的字串需前后紧挨,且字串双引号括住
string4="${str1}.${str2}.com"   #也可以使用${}方式引用变量
 
echo $string1
echo $string2
echo $string3
echo $string4

运行结果:

wwwbilibili
www bilibili
www...bilibili
www.bilibili.com

读取字符串

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ echo ${abc-'ok'}
ok
 
$ echo $abc
$ echo ${abc='ok'}
ok
$ echo $abc
ok
 
$ var1=11;var2=12;var3=
$ echo ${!v@}
var1 var2 var
 
$ echo ${!v*}
var1 var2 var3

#${!varprefix*}${!varprefix@}相似,可以通过变量名前缀字符,搜索已经定义的变量,无论是否为空值。

字符串比较

?
1
2
3
4
[[ "a.txt" == a* ]]        #逻辑真(pattern matching)
[[ "a.txt" =~ .*\.txt ]]   #逻辑真(regex matching)
[[ "abc" == "abc" ]]       #逻辑真(string comparision)
[[ "11" < "2" ]]           #逻辑真(string comparision),按 ascii 值比较

到此这篇关于Shell实现字符串处理的方法详解的文章就介绍到这了,更多相关Shell字符串处理内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/monarch91/article/details/123918335

延伸 · 阅读

精彩推荐
  • shellShell日志分析常用命令和例子

    Shell日志分析常用命令和例子

    这篇文章主要介绍了Shell日志分析常用命令和例子,本文重点在一样实现日志分析命令语句例子上,本文给出了10条常用的分析实例,需要的朋友可以参考下...

    shell教程网5782023-02-23
  • shellShell脚本函数定义和函数参数

    Shell脚本函数定义和函数参数

    这篇文章主要介绍了Shell脚本函数定义和函数参数,分别介绍了2种自定义函数的方法,以及定义带返回值函数的方法,需要的朋友可以参考下...

    shell教程网8462023-02-16
  • shell深入浅出Shell编程 Shell变量介绍

    深入浅出Shell编程 Shell变量介绍

    先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,环境变量,用户变量。其中用户变量在编程过程中使用最多,系统变量在对参数判...

    shell教程网4612022-12-06
  • shellShell字符串比较相等、不相等方法小结

    Shell字符串比较相等、不相等方法小结

    这篇文章主要介绍了Shell字符串比较相等、不相等方法小结,本文直接给出代码,但代码中含有大量注释,需要的朋友可以参考下...

    shell教程网5552023-02-22
  • shell防止ARP攻击的shell代码

    防止ARP攻击的shell代码

    防止ARP攻击,使用命令route、grep、ifconfig等,需要的朋友可以参考下...

    shell编程教程5332022-12-15
  • shellcentos中mysql备份数据库脚本分享

    centos中mysql备份数据库脚本分享

    这篇文章主要介绍了centos中mysql备份数据库脚本,可以做成mysql自动备份工具,管理网站一定会用的到,需要的朋友可以参考下...

    脚本之家10002022-12-30
  • shellLinux base shell重定向详解

    Linux base shell重定向详解

    这篇文章主要介绍了Linux base shell重定向的相关资料,并用一个简明例子总结了常见用法(在第三节),需要的朋友可以参考下...

    shell教程网7432023-02-08
  • shell获取站点的各类响应时间(dns解析时间,响应时间,传输时间)

    获取站点的各类响应时间(dns解析时间,响应时间,传输时间)

    有时候为了测试网络情况,需要返回每个阶段的耗时时间,比如DNS解析耗时,建立连接所消耗的时间,从建立连接到准备传输所使用的时间,从建立连接到...

    脚本之家5532022-12-30