从来就没有救世主  也不靠神仙皇帝  要创造人类的幸福  全靠我们自己  

linux--shell--字符串处理

 

1.  awk

 

2. expr

(1)字符串长度

#!/bin/bash

str="123456"
echo "${#str}"

expr length "${str}"

 

(2)子串查找

expr index ${str}  ${substr}

        在str上匹配子串第一次出现的位置(从1开始),找不到返回0

 

(3)匹配

expr match ${str} ${substr}

        在str的开头匹配子串(或正则),返回匹配到的子串长度,匹配不到返回0

 

(4)获取子串

str="123456"
echo "${str:1}"     #23456
echo "${str:1:2}"   #23
echo "${str: -2}"   #56
echo "${str:(-2)}"  #56

expr substr "${str}" 2 3  #234

        ${str:position}的字符串起点从0开始 

        expr 操作字符串起点从1开始

 

(5)删除子串

str="20011234 abc"
echo "${str#2*1}"  #1234 abc    删除str开头处匹配 2*1 的最短子串,非贪婪
echo "${str##2*1}" #234 abc     删除str开头处匹配 2*1 的最长子串,贪婪

echo "${str%1*c}"  #2001        删除str结尾处匹配 1*c 的最短子串
echo "${str%%1*c}" #200         删除str结尾处匹配 1*c 的最长子串

 

(6)子串替换

str="20011234 abc"
echo "${str/1/T}"   #200T1234 abc   替换第一个匹配的子串
echo "${str//1/T}"  #200TT234 abc   替换所有匹配的子串

 

str="123abc123"
echo "${str/#123/T}"   #Tabc123   替换开头处的子串
echo "${str/%123/T}"   #123abcT   替换结尾处的子串

 

posted @ 2020-09-22 10:33  T,X  阅读(258)  评论(0编辑  收藏  举报