日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell中的字符串操作

發布時間:2023/12/31 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell中的字符串操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SHELL字符串操作

bash Shell提供了多種字符串處理的命令:

  • awk命令
  • expr命令

字符串長度

  • ${#..}
  • expr length
  • awk的length(s)
    實例:
    string=”hello world”
    ${#string}
    expr length “$string”
    注意:雙引號是必須的。由于字符串有空格

匹配子串

格式:expr match $string $substring
作用:在string的開頭匹配substring,返回匹配到的長度,在string開頭匹配不到substring則返回0,substring能夠是正則表達式
string=”welcome to our world”

命令返回值
expr match “$string” w.*20
expr match “$string” ou.*0

公共字符的索引

格式:expr index $string $sunstring
作用:在字符串string上匹配substring中字符第一次出現的字符
string=”welcome to our world”

命令返回值
expr index “$string” our5
expr index “$string” d20
expr index “$string” s0

執行發現。expr index的功能是尋找兩個串之間的第一個公共字符

截取子串

  • 從左截取
    • ${string:position}
    • ${string:position:length}
  • 從右截取
    • ${string: -position}(冒號后面有一個空格)
    • ${string:(position)}
    • ${string: -position:length}
    • ${string:(position):length}

expr substr
格式:expr substr $string $position $length
與${}的差別:${}的position從0開始給string標號;expr sutstr的position從1開始給string標號
string=”welcome to our world”

命令返回值
echo ${string:1:8}elcome t
expr substr “$string” 2 8elcome t

正則表達式截取子串
使用正則表達式僅僅能抽取string開頭處或結尾處的子串。
- expr match $string ‘\($substring\)’
- expr $string : ‘\($substring\)’

命令返回值
expr match “$another” “[0-9]*”8
expr match “$another” “\([0-9]*\)”20091114
expr “$another” : “\([0-9]*\)”20091114

注意:冒號兩側有空格

刪除子串

  • ${string#substring}
    刪除string開頭處與substring匹配的最短子串
  • ${string##substring}
    刪除string開頭處與substring匹配的最長子串
  • ${string%substring}
    刪除string結尾處與substring匹配的最短子串
  • ${string%%substring}
  • 刪除string結尾處與substring匹配的最長子串

substring并不是正則表達式
20091114 Reading Hadoop

命令結果
echo “${another#2*1}”114 Reading Hadoop
echo “${another##2*1}”4 Reading Hadoop
echo “${another%a*p}”20091114 Reading H
echo “${another%%a*p}”20091114 Re

替換子串

  • ${string/substring/replacement}
    僅替換第一次與substring相匹配的子串
  • ${string//substring/replacement}
    替換全部與substring相匹配的子串
  • ${string/#substring/replacement}
    替換string開頭處與substring相匹配的子串
  • ${string/%substring/replacement}
    替換string結尾處與substring相匹配的子串

string=”20001020year20050509month”

命令結果
echo ${string/200/201}20101020year20050509month
echo ${string/200/201}20101020year20150509month
echo ${string/r*h/}20001020yea
echo ${string/#2000/2010}20101020year20050509month
echo ${string/%month/MONTH}20001020year20050509MONTH

轉載于:https://www.cnblogs.com/clnchanpin/p/7306268.html

總結

以上是生活随笔為你收集整理的shell中的字符串操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。