Shell 字符串截取

字符串区间截取

适用于知道目标字符串位置的情况
${varible:start:len},这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。

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 就不能得到理想的分隔效果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值