linux

775.【linux】字符串操作(一)

2023-08-27  本文已影响0人  七镜

研究过几次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}

用途:

返回指定的字串

示例

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
上一篇下一篇

猜你喜欢

热点阅读