shell的中的字符串处理

1.字符串的截取

1.1 */ 去掉到左边第一个/之前的内容,去掉前缀

${file#*/}

去掉从左数第一个 “/” 及其左边的所有字符,其中 “/” 也可以替换为其他字符。

1.2 */ 去掉到左边最后一个/之前的内容,只保留后缀

${file##*/}

去掉从左数最后一个 “/” 及其左边的所有字符,其中 “/” 也可以替换为其他字符。

1.3 去掉右边第一个/之后的内容, 去掉后缀

${file%/*}

去掉从左数最后一个 “/” 及其右边的所有字符,其中 “/” 也可以替换为其他字符。

1.4 去掉右边最后一个/之后的内容,只保留前缀

${file%%/*}

去掉从左数第一个”/”及其右边的所有字符,其中 “/” 也可以替换为其他字符。

2. 字符串的提取

${file:m:n}

提取从第 m 个字符开始的 n 个字符。

${file:0:5} # 表示提取字符串的前5个字符
${file:1:${#file}} #表示提取字符串除第 1 个字符之外的所有字符。

3. 字符串替换

3.1 替换第一个

${file/dir/path}

表示将字符串file 中出现的第一个 dir 替换为 path。

3.2 替换所有

${file//dir/path}

表示将字符串 file 中出现的所有 dir 替换为 path。

3.3 使用sed替换

echo "xxx" | sed -e 's/aaa/bbb/g' # 和vim的操作模式一样

4. 特殊字符

单引号会替换和转义’ ',双引号保留""。
注意是在使用字符串的时候加单双引号

你可能感兴趣的:(shell)