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

 更新时间:2022年09月22日 09:23:01   作者:农民工老王  
这篇文章主要为大家详细介绍了Linux Shell中实现字符串处理的方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以了解一下

大小写转化

# 把变量中的第一个字符换成大写
${test^}

# 把变量中的所有小写字母,全部替换为大写
${test^^}

# 把变量中的第一个字符换成小写
${test,}

# 把变量中的所有大写字母,全部替换为小写
${test,,}

示例

#!/bin/bash
# script file name is test.sh 
test="abcDEF"
echo "test^=${test^}"
echo "test^^=${test^^}"
echo "test,=${test,}"
echo "test,,=${test,,}"

获取字符串长度

${#string}

替换

整体替换

# 若变量var为空,则用string来替换此处的值,最常用。
${var:-string}

# 若变量var为空,则用string来替换此处的值,把string赋给变量var。
${var:=string}

# 若变量var不为空,则用string来替换此处的值。
${var:+string}

# 若变量var不为空,则用string来替换此处的值;
# 若变量var为空,则把string输出到标准错误中,并从脚本中退出。
# 常用利用此特性来检查是否设置了变量的值。
${var:?string}

部分替换

# 只替换第1个子串
${var/old/new}

# 替换全部子串
${var//old/new}

截取

# 从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*}

示例

#!/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还有许多字符串操作,下面小编为大家整理了一些,需要的可以参考一下

字符串的拼接

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

读取字符串

$ 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@}相似,可以通过变量名前缀字符,搜索已经定义的变量,无论是否为空值。

字符串比较

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

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

相关文章

  • 每天一个linux命令 chgrp命令

    每天一个linux命令 chgrp命令

    这篇文章主要为大家详细介绍了一个linux命令:chgrp命令,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 验证用户输入的参数合法性的shell脚本

    验证用户输入的参数合法性的shell脚本

    今天这个例子是 用来验证用户输入的参数的合法性的,程序并不复杂,需要的朋友可以参考下
    2016-08-08
  • Linux文件查找和解压缩命令详解

    Linux文件查找和解压缩命令详解

    这篇文章主要介绍了Linux文件查找和解压缩命令,文件搜索查找包括按照名字搜索,按照文件所属`主用户`搜索,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • 使用shc工具加密shell脚本详解

    使用shc工具加密shell脚本详解

    这篇文章主要介绍了使用shc工具加密shell脚本详解,Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件,需要的朋友可以参考下
    2014-12-12
  • Linux下Shell编程快捷键大全(日常整理)

    Linux下Shell编程快捷键大全(日常整理)

    有时候,我们需要在 Bash 中重复执行先前的命令。所以学习shell编程快捷键对工作非常有帮助,下面由脚本之家小编给大家介绍Linux下Shell编程快捷键大全,需要的朋友参考下吧
    2016-03-03
  • bash shell命令行选项与修传入参数处理

    bash shell命令行选项与修传入参数处理

    本文介绍了bash shell命令行参数与命令行选项的操作方法,有关shell 命令行参数的实例教程,有需要的朋友参考下。
    2014-04-04
  • linux下批量删除utf8 bom的实现方法

    linux下批量删除utf8 bom的实现方法

    下面小编就为大家带来一篇linux下批量删除utf8 bom的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Linux Shell脚本多命令执行逻辑的示例详解

    Linux Shell脚本多命令执行逻辑的示例详解

    Linux 中可以使用分号";“、双and号”&&“和双竖线”||"来连接多个命令。根据场景的不同适当的使用合适的符号,感兴趣的小伙伴可以了解一下
    2022-10-10
  • shell 编程中空格的使用方法

    shell 编程中空格的使用方法

    这篇文章主要介绍了shell 编程中空格的使用方法,需要的朋友可以参考下
    2015-01-01
  • Shell中比较大小简洁总结

    Shell中比较大小简洁总结

    这篇文章主要介绍了Shell中比较大小简洁总结,本文总结了在shell中比较变量大小的一些方法,需要的朋友可以参考下
    2014-12-12

最新评论