字符串区间截取
适用于知道目标字符串位置的情况${varible:n1:n2}
,这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。
var=hello echo ${hello:0:2} #将得到 he
指定字符串截取
${varible##*string} 从左向右截取最后一个 string 后的字符串
${varible#*string} 从左向右截取第一个 string 后的字符串
${varible%%string*} 从右向左截取最后一个 string 前的字符串
${varible%string*} 从右向左截取第一个 string 前的字符串
如果想提取文件后缀
var=text.txt
,则${var##*.}
var=text.tar.gz
,则${var#*.}
cut 命令
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。 -b :输入每行第n个字节(半角,注意如果有中文将乱码)。 -c :输入每行第n个字符(适用中文)。 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 -n :取消分割多字节字符(例如中文)。仅和-b标志一起使用。
- 字节分割
who | cut -b 1-3
- 字符分割
who | cut -c 1-3
- 指定分隔符分割
who | cut -d : -f 1-2
缺陷和不足
cut只擅长处理 “以一个字符间隔”
的文本内容。例如多个空格分割的文本,cut 就不能得到理想的分隔效果。
文章来源: https://blog.csdn.net/FJDJFKDJFKDJFKD/article/details/91416171