[内容] Shell 文本掐头去尾的使用

内容一:掐头

1.1 只掐头从左数第 1 个出现的某个字符和此字符前面的所有内容

# complete=/dir1/dir2/dir3/dir4/test.file.txt
# echo ${complete#*/}
dir1/dir2/dir3/dir4/test.file.txt

(补充:这里以掐掉从左数第 1 个斜杠 “/” 以及前面的所有所有内容为例)

1.2 掐头从左数最后 1 个出现的某个字符和此字符前面的所有内容

# complete=/dir1/dir2/dir3/dir4/test.file.txt
# echo ${complete##*/}
test.file.txt

(补充:这里以掐掉从左数最后 1 个斜杠 “/” 以及前面的所有所有内容为例)

内容二:去尾

2.1 只去尾从右数第 1 个出现的某个字符和此字符后面的所有内容

# complete=/dir1/dir2/dir3/dir4/test.file.txt
# echo ${complete%.*}
/dir1/dir2/dir3/dir4/test.file

(补充:这里以掐掉从右数第 1 个点 “.” 以及后面的所有所有内容为例)

2.2 去尾从右数最后 1 个出现的某个字符和此字符后面的所有内容

# complete=/dir1/dir2/dir3/dir4/test.file.txt
# echo ${complete%%.*}
/dir1/dir2/dir3/dir4/test

(补充:这里以掐掉从右数最后 1 个点 “.” 以及后面的所有所有内容为例)