shell: linux shell取变量的子串26种方法实践
June 4, 2015
##########20150419######################### #####题目:变量a='a/b/c'如何截取得到c @@@@@@@@@@@@@@@@来自运维班21期悠久之翼整理@@@@@@@@@@@@@@@@@@@ [wxr@oldboy shell]$ uname -r 2.6.32-504.el6.x86_64 [wxr@oldboy shell]$ cat /etc/redhat-release CentOS release 6.6 (Final) 方法一 [wxr@oldboy shell]$ echo $a | cut -c5 c 方法二 [wxr@oldboy shell]$ echo $a | tr "a/b/>" " >" ##四个空格 c 方法三 [wxr@oldboy shell]$ echo $a | tr "/>" "n>"|tail -1 c 方法四 [wxr@oldboy shell]$ echo $a | tr -d 'a/b/' c 方法五 [wxr@oldboy shell]$ echo $a | rev |head -c1 c[wxr@oldboy shell]$ 方法六 [wxr@oldboy shell]$ echo $a | rev |cut -c1 c 方法七 [wxr@oldboy shell]$ echo $a | grep -o "[a-z]$>" c 方法八 [wxr@oldboy shell]$ echo $a | grep -o "[^ab/]>" c 方法九 [wxr@oldboy shell]$ echo $a | sed 's#.*/##' c 方法十 [wxr@oldboy shell]$ echo $a | sed 'y#a/b/# #' ##四个空格 c 方法十一 [wxr@oldboy shell]$ echo $a | sed -r 's#....(.)#1#' c 方法十二 [wxr@oldboy shell]$ echo $a | sed -r 's#.*([a-z]$)#1#' c 方法十三 [wxr@oldboy shell]$ echo $a | awk -F/ '{print $NF}' c 方法十四 [wxr@oldboy shell]$ echo $a | awk '{gsub(".*/>",">",$0);print}' c 方法十五 [wxr@oldboy shell]$ echo $a | awk '{split($0,array,"/>");print array[3]}' c 方法十六 [wxr@oldboy shell]$ echo $a | awk '{split($0,array,"a/b/>");print array[2]}' c 方法十七 [wxr@oldboy shell]$ echo $a | awk '{sub(/[^c]+/,">");print}' c 方法十八 [wxr@oldboy shell]$ echo $a | awk '{gsub("/>","n>");print $3}' c 方法十九 [wxr@oldboy shell]$ echo $a | awk '{print substr($0,5,1) }' c 方法二十 [wxr@oldboy shell]$ echo $a | awk 'BEGIN{RS="[/n]>"}NR==3' c 方法二十一 [wxr@oldboy shell]$ echo $a|cut -d/ -f3 ##上海-龚小逸N c 方法二十二 [wxr@oldboy shell]$ echo ${a:4} ##北京-徐富成 c 方法二十三 [wxr@oldboy shell]$ echo ${a##*/} ##北京-徐富成 c 方法二十四 [wxr@oldboy shell]$ echo $a |tr "/>" "n>"|awk 'NR==3' c 方法二十五 [wxr@oldboy shell]$ echo ${a:4:1} ##上海-龚小逸 c 方法二十六 [wxr@oldboy shell]$ echo ${a##a/b/} ##北京-刘晓涛 c
0 Comments