BashShell字符串
1. 简介
BashShell 字符串内置许多字符串操作,包括有字符串切割、替换、分割等。
2. ${}
语法
2.1 字符串截取
举例来说:对于字符串 file=/dir1/dir2/dir3/my.file.txt
,可以用 ${}
分别替换得到不同的值:
${file#*/}
: 删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt
${file##*/}
: 删掉最后一个 / 及其左边的字符串:my.file.txt
${file#*.}
: 删掉第一个 . 及其左边的字符串:file.txt
${file##*.}
: 删掉最后一个 . 及其左边的字符串:txt
${file%/*}
: 删掉最后一个 / 及其右边的字符串:/dir1/dir2/dir3
${file%%/*}
: 删掉第一个 / 及其右边的字符串:(空值)
${file%.*}
: 删掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file
${file%%.*}
: 删掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my
记忆方法:
1 | # 是去掉左边(键盘上 # 在 $ 的左边) |
2.2 子串提取、替换
对于字符串 file=/dir1/dir2/dir3/my.file.txt
,还可以使用 ${}
语法来进行子串提取和替换:
${file: start: length}
语法:
${file: 0: 5}
:提取最左边的 5 个字节:/dir1
${file: 5: 5}
:提取从左往右数第 5 个字节右边的连续 5 个字节:/dir2
${file: 5}
:提取第 5 个字节右边的所有字节:/dir2/dir3/my.file.txt
${file: -8: 4}
:提取从右往左数第 8 个字节右边的连续 4 个字节:file
${file: -8}
:提取从右往左数第 8 个字节右边的所有字节:file.txt
${file/dir/path}
:将第一个dir
提换为path
:/path1/dir2/dir3/my.file.txt
${file//dir/path}
:将全部dir
提换为path
:/path1/path2/path3/my.file.txt
- `$
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 お前はどこまで見えている!
评论
WalineTwikoo