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








