crespo09 发表于 2018-8-22 11:48:12

shell截取字符串的常用方法

  1、获取字符从前8位,实现方法有如下几种:
  a=123456789
  $ expr substr $a 1 8
  $ echo $a|cut -c 1-8echo $
  $ echo $a |dd bs=1 count=8 2> /dev/null
  2、按指定的字符串截取
  (1)第一种方法:
  从左向右截取最后一个string后的字符串
  ${varible##*string}
  从左向右截取第一个string后的字符串
  ${varible#*string}
  从右向左截取最后一个string后的字符串
  ${varible%%string*}
  从右向左截取第一个string后的字符串
  ${varible%string*}
  如ip=192.168.1.1,安装"."分割
  $ echo ${ip##*.}#得到的是最后一列
  1
  $ echo ${ip#*.} #得到的除去第一列的字符串
  168.1.1
  $ echo ${ip%%.*} #得到的是第一列
  192
  $ echo ${ip%.*}   #得到的除去最后一列的字符串
  192.168.1
  3、获取指定的长度
  ${varible:n1:n2}:截取变量varible从n1开始的n2个字符,组成一个子字符串。可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:
  如ip=192.168.1.1
  $ echo ${ip:0:3}
  192
  $ echo ${ip:3}
  .168.1.1
  4、获取指定的列
  如ip=192.168.1.1
  $ echo $ip | cut -d "." -f2
  168
  $ echo $ip| awk -F "."'{print $2}'
  168
  参考:http://54rd.net/html/2015/shell_0423/110.html

页: [1]
查看完整版本: shell截取字符串的常用方法