美文网首页
Linux shell截取字符串

Linux shell截取字符串

作者: 泽洛灬 | 来源:发表于2018-08-21 15:53 被阅读0次

    1.截取指定字符串之后的子串

    M:需要进行截取的父串

    mark:特定子串

    match:最终得到的结果

    M= start_foo_first_foo_second_foo_third_end

    mark=foo_

    四种不同的语法和相应的含义:

    match=${M##mark}

    在M中从左向右截取最后一个mark出现之后至结尾的子串

    match=third_end

    match=${M#*matk}

    在M中从左向右截取第一个mark出现之后至结尾的子串

    match=first_foo_second_foo_third_end

    match=${M%%mark*}

    在M中从右向左截取最后一个mark后的字符串

    match=start_

    match=${M%%mark*}

    在M中从右向左截取第一个mark后的字符串

    match=first_foo_second_

    2.指定字符串索引位置的子串截取方法

    ${M:n1:n2}

    M=012345678

    使用方法:match= ${M:3:7}

    结果为:match=34567

    注意:索引从0开始

    3.使用cut截取

    cut -d "mark" -f "number"

    使用方法:echo "the:editor:is:very:easy:to:use" | cut -d ":" -f 1

    结果为:the

    解释一下:cut -d 表示将标准输出中的字符串按照紧跟的参数进行分割,在这将字串"the:editor:is:very:easy:to:use"分割为每个单词

    -f 表示提取上一步分割的单词序列的第几个索引,这里是1,也就是the这个单词

    注意:-d 后的参数只能是单个字符。例如:。#¥&.

    -f 的索引是从1开始的并非上一种方法中介绍的从0开始

    -f 可以指定索引范围,例如上例中变为echo "the:editor:is:very:easy:to:use" | cut -d ":" -f 1-3 得到的结果将是theeditoris

    欢迎指正和补充。

    相关文章

      网友评论

          本文标题:Linux shell截取字符串

          本文链接:https://www.haomeiwen.com/subject/ogljiftx.html