284354749 发表于 2018-8-27 13:26:54

shell脚本中字符串截取的多种方法

  1.#号截取,删除左边字符,保留右边字符。
  代码:echo ${var#*//}
  其中var是变量名,#是运算符,*//表示从左边开始删除第一个//及左边的所有字符
  示例:

  结果:

  2.##截取,删除左边字符,保留右边字符
  代码:echo ${var##*/}
  其中##*/表示从左边开始删除最后(最右边)一个/号及左边的所有字符
  示例:

  结果:

  3.% 号截取,删除右边字符,保留左边字符
  代码:echo ${var%/*}
  其中%/*表示从右边开始,删除第一个/号及右边的字符
  示例:

  结果:

  4.%%号截取,删除右边字符,保留左边字符
  代码:echo ${%%/*}
  其中%%/*表示从右边开始,删除最后(最左边)一个/及右边的字符
  示例:

  结果:

  5.从左边第几个字符开始,及字符的个数
  代码:echo ${var:0:5}
  其中的0表示左边第一个字符开始,5表示字符的总个数
  示例:

  结果:

  6.从左边第几个字符开始,一直到结束
  代码:echo ${var:7}
  其中的7表示从左边第8个字符开始,一直到结束
  示例:

  结果:

  7.从右边第几个字符开始,及字符的个数
  代码:echo ${var:0-7:3}
  其中的0-7表示从右边数起第七个字符开始,3表示字符的个数
  示例:

  结果:

  8.从右边第几个字符开始,一直到结束
  代码: echo ${var:0-7}
  表示从右边第七个字符开始,一直到结束
  示例:

  结果:

  9.cut命令主要是接受三个定位方法:
  (1)字节,用选项-b
  (2)字符,用选项-c
  (3)域,用选项-f
  示例:

  这样看似乎-b和-c选项没有什么区别,其实不然,因为who输出的都是单字节字符,所以用-b和-c没有区别,若是改成中文,则只有-c可以使用了,而-b输出的是乱码。
  我们所提到的-b和-c只能在固定格式的文档中提取信息,而对于非固定格式的信息就没有用了,这时就用到“域”了。
  示例:


页: [1]
查看完整版本: shell脚本中字符串截取的多种方法