【linux】字符串操作(一)

简介: 【linux】字符串操作(一)

研究过几次linux 里的 BASH_SOURCE 了,一直搞不明白${BASH_SOURCE-$0} 是什么意思。感觉来学习一下linux 中的 bash 里头自带的字符串操作。



一、字符串长度


语法:

${#string}


用途:

返回字符串的长度。


示例:

root@FENG:/mnt/h/tmp/tmp# a=djklgjdklsjdlkgsjlk
root@FENG:/mnt/h/tmp/tmp# echo ${#a}
19
root@FENG:/mnt/h/tmp/tmp# date
Sun Aug 27 16:43:06 CST 2023




二、字符串截取


语法:

${string:position:length}
  • position: 子串的起始位置
  • length: 字串的长度,可省略

用途:

返回指定的字串



示例

root@FENG:/mnt/h/tmp/tmp# a=dgkjsnwienlsfd
root@FENG:/mnt/h/tmp/tmp# echo ${a:3}
jsnwienlsfd
root@FENG:/mnt/h/tmp/tmp# echo ${a:3:3}
jsn
root@FENG:/mnt/h/tmp/tmp# date
Sun Aug 27 16:50:41 CST 2023



三、删除子串


语法:


${string#sustring}


用途:

删除正向匹配到的子串,

注意:最短匹配规则时是单个#,最长匹配时是两个##


示例:

root@FENG:/mnt/h/tmp/tmp# a=abcABCdjskgdjABC
root@FENG:/mnt/h/tmp/tmp# echo ${a#a*A}
BCdjskgdjABC
root@FENG:/mnt/h/tmp/tmp# echo ${a##a*A}
BC
root@FENG:/mnt/h/tmp/tmp# date
Sun Aug 27 16:56:45 CST 2023



语法:

${string%substring}



用途

删除反向匹配的子串


示例

root@FENG:/mnt/h/tmp/tmp# a=abcABCdjskgdjABC
root@FENG:/mnt/h/tmp/tmp# echo ${a%A*C}
abcABCdjskgdj
root@FENG:/mnt/h/tmp/tmp# echo ${a%%A*C}
abc
root@FENG:/mnt/h/tmp/tmp# date
Sun Aug 27 16:58:51 CST 2023



四、字符串替换

语法:

${string/substring/replacement}



用途

替换第一个匹配到的子串


示例

root@FENG:/mnt/h/tmp/tmp# a=abctesttestABC
root@FENG:/mnt/h/tmp/tmp# echo ${a/test/qijing}
abcqijingtestABC
root@FENG:/mnt/h/tmp/tmp#
root@FENG:/mnt/h/tmp/tmp# date
Sun Aug 27 17:01:04 CST 2023


语法:

${string//substring/replacement}



用途

替换所有匹配到的子串



示例

root@FENG:/mnt/h/tmp/tmp# a=abctesttestABC
root@FENG:/mnt/h/tmp/tmp# echo ${a//test/qijing}
abcqijingqijingABC
root@FENG:/mnt/h/tmp/tmp#
root@FENG:/mnt/h/tmp/tmp# date
Sun Aug 27 17:01:04 CST 2023


目录
相关文章
|
7月前
|
Shell Linux C语言
【Shell 命令集合 文档编辑 】Linux 递归搜索指定字符串 rgrep命令使用指南
【Shell 命令集合 文档编辑 】Linux 递归搜索指定字符串 rgrep命令使用指南
78 0
|
7月前
|
Shell Linux C语言
【Shell 命令集合 文档编辑】Linux 在文件中查找指定的字符串 fgrep命令使用指南
【Shell 命令集合 文档编辑】Linux 在文件中查找指定的字符串 fgrep命令使用指南
95 2
|
3月前
|
Linux Python Perl
Linux命令删除文件里的字符串
Linux命令删除文件里的字符串
63 7
|
4月前
|
JavaScript 关系型数据库 Shell
Linux shell编写技巧之随机取字符串(一)
本文介绍了Linux Shell脚本的编写技巧,包括环境配置、变量命名规则和缩进语法,并提供了一个实例练习,展示如何使用`$RANDOM`变量和`md5sum`命令来生成随机的8位字符串。
64 4
|
4月前
|
Linux Perl
Linux进行文件字符串替换
【8月更文挑战第5天】Linux进行文件字符串替换
578 3
|
5月前
|
Linux PHP
linux查找指定目录下包含指定字符串文件,包含子目录
linux查找指定目录下包含指定字符串文件,包含子目录
48 1
|
5月前
|
Linux Perl
linux 批量查找并替换文件里的指定字符串,linux 批量查找并替换当前目录下所有子目录内文件里的指定字符串
linux 批量查找并替换文件里的指定字符串,linux 批量查找并替换当前目录下所有子目录内文件里的指定字符串
61 0
|
6月前
|
Shell Linux
linux shell脚本字符串 字段分隔符 存入数组 根据下标取值
linux shell脚本字符串 字段分隔符 存入数组 根据下标取值
84 0
|
7月前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
72 0
|
7月前
|
Linux PHP 开发工具
Linux查找含有某字符串文件并批量替换
Linux查找含有某字符串文件并批量替换