校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Linux 使用shell腳本處理字符串的實現

Linux 使用shell腳本處理字符串的實現

熱門標簽:電話機器人對家居行業幫助大嗎 蘭州電銷機器人加盟 沈陽ai電銷智能機器人 合肥電銷外呼系統供應商 AI智能電銷機器人壞處 地圖標注審核周期 電商外呼系統排名 黑暗之魂3地圖標注 如何申請400的電話呀

1. 截取字符串的前8位

expr substr "$string" 1 8
echo $string | awk '{print substr(,1,8)}'
echo $string | cut -c1-8
echo $string | dd bs=1 count=8 2>/dev/null

2. 分割、替換字符串

2.1 命令說明

符號 釋義
* 通配符,用于匹配字符串將被刪除的子串
. 分割符,可以為任意一個或多個字符
% 從右向左匹配
# 從左向右匹配
/ 表示替換
% # / 非貪婪匹配,即匹配符合通配符的最短結果
% ## // 貪婪匹配,即匹配符合通配符的最長結果

示例 含義
${#VALUE} 計算VALUE字符串的字符數量
${VALUE%.*} 或 ${VALUE%%.*} 刪除VALUE字符串中以分隔符"."匹配的右側字符,保留左側字符
${VALUE#*.} 或 ${VALUE##*.} 刪除VALUE字符串中以分隔符"."匹配的左側字符,保留右側字符
${VALUE/OLD/NEW} 或 ${VALUE//OLD/NEW} 用NEW子串替換VALUE字符串中匹配的OLD子串

2.2 應用實例

定義變量name=odysee_odysee

計算VALUE字符串的字符數量

echo ${#name}  # 輸出結果 13

刪除VALUE字符串中以分隔符"."匹配的右側字符,保留左側字符

# 非貪婪匹配
echo ${name%y*}  # 輸出結果 odysee_od
# 貪婪匹配
echo ${name%%y*} # 輸出結果 od

刪除VALUE字符串中以分隔符"."匹配的左側字符,保留右側字符

# 非貪婪匹配
echo ${name#*y}  # 輸出結果 see_odysee
# 貪婪匹配
echo ${name##*y} # 輸出結果 see

用NEW子串替換VALUE字符串中匹配的OLD子串

# 非貪婪匹配
echo ${name/o/O} #輸出結果 Odysee_odysee

# 貪婪匹配
echo ${name//o/O} #輸出結果 Odysee_Odysee

3. 字符串截取

3.1 命令說明

示例 含義
${VALUE:POSITION} 在字符串VALUE中,從位置POSITION開始提取子串(從左到右匹配)
${VALUE:POSITION:LENGTH} 在字符串VALUE中,從位置POSITION開始提取長度為LENGTH的子串(從左到右匹配)
${VALUE:0-OFFSET} 在字符串VALUE中,從右到左截取OFFSET個字符
${VALUE:0-OFFSET:LENGTH} 在字符串VALUE中,從右到左截取OFFSET個字符的前LENGTH個

3.2 應用實例

定義變量name=mynameisodysee

在字符串name中,從位置2開始提取子串(從左到右匹配)

echo ${name:2} # 輸出結果 nameisodysee

在字符串name中,從位置2開始提取長度為4的子串(從左到右匹配)

echo ${name:2:4} # 輸出結果 name

在字符串name中,從右到左截取8個字符

echo ${name:0-8} # 輸出結果 isodysee

在字符串name中,從右到左截取8個字符的前兩個

echo ${name:0-8:2} # 輸出結果 is

定義變量string=abc12342341 ,以下為截取示例

echo ${string:4}    # 從第4位開始截取后面所有字符串,輸出結果:2342341
echo ${string:3:3}   # 從第3位開始截取后面3位,輸出結果:123
echo ${string:3:6}   #從第3位開始截取后面6位,輸出結果:123423  
echo ${string: -4}   #截取后4位,輸出結果:2341
echo ${string:(-4)}   #同上  
expr substr $string 3 3 #從第3位開始截取后面3位,輸出結果123 

定義變量str="abcdef",以下為截取示例

expr substr "$str" 1 3 # 從第一個位置開始取3個字符,輸出結果:abc 
expr substr "$str" 2 5 # 從第二個位置開始取5個字符,輸出結果:bcdef  
expr substr "$str" 4 5 # 從第四個位置開始取5個字符,輸出結果:def 
echo ${str:2}      # 從第二個位置開始提取字符串,輸出結果:bcdef 
echo ${str:2:3}     # 從第二個位置開始提取3個字符,輸出結果:bcd 
echo ${str:(-6):5}   # 從倒數第二個位置向左提取字符串,輸出結果:abcde 
echo ${str:(-4):3}   # 從倒數第二個位置向左提取6個字符,輸出結果:cde

4. 判斷變量的值

4.1 命令說明

示例 含義
${string-DEFAULT} 如果string變量未定義,返回值為DEFAULT的值,否則返回變量的值
${string:-DEFAULT} 如果string變量未定義,或者其值為空,返回值為DEFAULT的值,否則返回變量的值
${string=DEFAULT} 如果string變量未定義,返回值為DEFAULT的值,并將DEFAULT賦值給string,否則返回變量的值
${string:=DEFAULT} 如果string變量未定義,或者其值為空,返回值為DEFAULT的值,
并將DEFAULT賦值給string,否則返回變量的值
${string+DEFAULT} 如果string已賦值,其值用DEFAULT替換,否則不進行任何替換
${string:+DEFAULT} 如果string已賦值,其值用DEFAULT替換,否則不進行任何替換
${string?ERR_MSG} 當變量未被定義時,將ERR_MSG消息發送到標準錯誤輸出
${string:?ERR_MSG} 當變量未被賦值時,將ERR_MSG消息發送到標準錯誤輸出

4.2 應用實例

${string-DEFAULT}:如果string變量未定義,返回值為DEFAULT的值,否則返回變量的值

# 未定義string變量
echo ${string-string 變量未定義}  # 輸出結果:string 變量未定義

# 定義string變量,但值為空(會返回空值)
string=
echo ${string-string 變量未定義}  # 輸出結果為空

# 定義string變量并賦值
string=test
echo ${string-string 變量未定義}  # 輸出結果:test

${string:-DEFAULT}:如果string變量未定義,或者其值為空,返回值為DEFAULT的值,否則返回變量的值

# 未定義string變量
echo ${string:-string 變量未定義} # 輸出結果:string 變量未定義

# 定義string變量,但值為空
string=
echo ${string:-string 變量值為空} # 輸出結果:string 變量值為空

# 定義string變量并賦值
string=test
echo ${string:-string 變量值為空} # 輸出結果:test

${string=DEFAULT}:如果string變量未定義,返回值為DEFAULT的值,并將DEFAULT賦值給string,否則返回變量的值

# 未定義string變量
echo ${string=123}  # 輸出結果:123
echo ${string}  # 輸出結果:123

# 定義string變量,但值為空(會返回空值)
string=
echo ${string=123}  # 輸出結果為空
echo ${string}

# 定義string變量并賦值
string=test
echo ${string=123}  # 輸出結果:test
echo ${string}  # 輸出結果:test

${string:=DEFAULT}:如果string變量未定義,或者其值為空,返回值為DEFAULT的值,并將DEFAULT賦值給string,否則返回變量的值

# 未定義string變量
echo ${string:=123}  # 輸出結果:123
echo ${string}  # 輸出結果:123

# 定義string變量,但值為空
string=
echo ${string:=123}  # 輸出結果:123
echo ${string}  # 輸出結果:123

#定義string變量并賦值
string=test
echo ${string:=123}  # 輸出結果:test
echo ${string}  # 輸出結果:test

${string+DEFAULT}:如果string已賦值,其值用DEFAULT替換,否則不進行任何替換

# 未定義string變量
echo ${string+123}  # 輸出結果為空
echo ${string}  # 輸出結果為空

# 定義string變量,但值為空
string=
echo ${string+123}  # 輸出結果:123
echo ${string}  # 輸出結果為空

# 定義string變量并賦值
string=test
echo ${string+123}  # 輸出結果:123
echo ${string}  # 輸出結果:test

${string:+DEFAULT}:如果string已賦值,其值用DEFAULT替換,否則不進行任何替換

# 未定義string變量
echo ${string:+123}  # 輸出結果為空
echo ${string}  # 輸出結果為空

# 定義string變量,但值為空
string=
echo ${string:+123}  # 輸出結果為空
echo ${string}  # 輸出結果為空

# 定義string變量并賦值
string=test
echo ${string:+123}  # 輸出結果:123
echo ${string}  # 輸出結果:test

${string?ERR_MSG}:當變量未被定義時,將ERR_MSG消息發送到標準錯誤輸出

# 未定義string變量
echo ${string?輸出錯誤信息} # 輸出結果:-bash: string: 輸出錯誤信息
echo ${string}  # 輸出結果為空

# 定義string變量,但值為空
string=
echo ${string?輸出錯誤信息} # 輸出結果為空
echo ${string}  # 輸出結果為空

# 定義string變量并賦值
string=test
echo ${string?輸出錯誤信息} # 輸出結果:test
echo ${string}  # 輸出結果:test

${string:?ERR_MSG}:當變量未被賦值時,將ERR_MSG消息發送到標準錯誤輸出

# 未定義string變量
echo ${string:?輸出錯誤信息} # 輸出結果:-bash: string: 輸出錯誤信息
echo ${string}  # 輸出結果為空

# 定義string變量,但值為空
string=
echo ${string:?輸出錯誤信息} # 輸出結果:-bash: string: 輸出錯誤信息
echo ${string}  # 輸出結果為空

# 定義string變量并賦值
string=test
echo ${string:?輸出錯誤信息} # 輸出結果:test
echo ${string}  # 輸出結果:test

5. 獲取字符串長度

# 定義變量string=abc12342341
echo ${#string}  # 輸出結果 11
expr length $string # 輸出結果 11
expr "$string" : ".*" # 分號二邊要有空格,這里的:根match的用法差不多

6. 獲取字符串所在位置

# 定義變量str="abc"
expr index $str "a" # 輸出結果 1 
expr index $str "b" # 輸出結果 2 
expr index $str "x" # 輸出結果 0 
expr index $str ""  # 輸出結果 0  

7. 獲取從字符串開頭到子串的最大長度

# 定義變量string=abc12342341
expr match $string 'abc.*3' # 輸出結果 9

8. 顯示匹配的內容

# 定義變量string=abc12342341
expr match $string '\([a-c]*[0-9]*\)' # 輸出結果 abc12342341  
expr $string : '\([a-c]*[0-9]\)'    # 輸出結果 abc1  
expr $string : '.*\([0-9][0-9][0-9]\)' # 輸出結果 341 顯示括號中匹配的內容 

9. 顯示不匹配的內容

# 定義變量string=abc12342341
echo ${string#a*3}   # 從$string左邊開始,去掉最短匹配子串,輸出結果:42341 
echo ${string#c*3}   # 這樣什么也沒有匹配到,輸出結果:abc12342341
echo ${string#*c1*3}  # 從$string左邊開始,去掉最短匹配子串,輸出結果:42341 
echo ${string##a*3}  # 從$string左邊開始,去掉最長匹配子串,輸出結果:41
echo ${string%3*1}   # 從$string右邊開始,去掉最短匹配子串,輸出結果:abc12342
echo ${string%%3*1}  # 從$string右邊開始,去掉最長匹配子串,輸出結果:abc12

# 定義變量str="abbc,def,ghi,abcjkl" 
echo ${str#a*c}     # 輸出結果:def,ghi,abcjkl 一個井號(#) 表示從左邊截取掉最短的匹配 (這里把abbc字串去掉) 
echo ${str##a*c}    # 輸出結果:jkl       兩個井號(##) 表示從左邊截取掉最長的匹配 (這里把abbc,def,ghi,abc字串去掉) 
echo ${str#"a*c"}    # 輸出結果:abbc,def,ghi,abcjkl  因為str中沒有"a*c"子串 
echo ${str##"a*c"}   # 輸出結果:abbc,def,ghi,abcjkl  同理 
echo ${str#*a*c*}    # 輸出結果:空 
echo ${str##*a*c*}   # 輸出結果:空 
echo ${str#d*f}     # 輸出結果:abbc,def,ghi,abcjkl,  
echo ${str#*d*f}    # 輸出結果:ghi,abcjkl   
echo ${str%a*l}     # 輸出結果:abbc,def,ghi     一個百分號(%)表示從右邊截取最短的匹配  
echo ${str%%b*l}    # 輸出結果:a           兩個百分號表示(%%)表示從右邊截取最長的匹配 
echo ${str%a*c}     # 輸出結果:abbc,def,ghi,abcjkl

# 這里要注意,必須從字符串的第一個字符開始,或者從最后一個開始,可以這樣記憶, 井號(#)通常用于表示一個數字,它是放在前面的;百分號(%)卸載數字的后面; 或者這樣記憶,在鍵盤布局中,井號(#)總是位于百分號(%)的左邊(即前面)

10. 去掉字符串末尾的字符

使用df -Th獲取磁盤信息,并將使用率賦給變量來與閾值進行對比,如果存在%號無法進行對比,所以需要去掉變量中的%號,可以使用${var%?}的格式來去掉最后一個字符

#!/bin/bash

root_usage=$(df -TPh | grep -w "/" | awk '{print $6}')
echo ${root_usage%?}

到此這篇關于Linux 使用shell腳本處理字符串的實現的文章就介紹到這了,更多相關shell處理字符串內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Shell腳本8種字符串截取方法總結
  • 比較兩個字符串是否相等的shell代碼
  • Shell腳本中計算字符串長度的5種方法
  • Shell腳本實現簡單分割字符串
  • 在Shell中分割字符串的例子
  • Shell獲取字符串長度的多種方法總結
  • Shell中去除字符串前后空格的方法

標簽:黔南 河北 常州 河池 通遼 隴南 黔南 淮南

巨人網絡通訊聲明:本文標題《Linux 使用shell腳本處理字符串的實現》,本文關鍵詞  Linux,使用,shell,腳本,處理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux 使用shell腳本處理字符串的實現》相關的同類信息!
  • 本頁收集關于Linux 使用shell腳本處理字符串的實現的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日韩欧美一卡二卡| 黑人巨大精品欧美黑白配亚洲| 国产亚洲制服色| 91精品国产高清一区二区三区| 在线观看亚洲精品| 成人国产精品免费观看动漫| 狠狠狠色丁香婷婷综合久久五月| 日韩成人一级大片| 国产一区二区福利| 99久久婷婷国产| 欧美日韩1234| 国产女人18水真多18精品一级做| 国产精品私人自拍| 亚洲成人av电影| 激情小说欧美图片| 成人av在线播放网站| 91成人看片片| 91精品麻豆日日躁夜夜躁| 日韩一级精品视频在线观看| 久久久99免费| 丝袜亚洲精品中文字幕一区| 九九久久精品视频| 色婷婷国产精品久久包臀| 欧美一级xxx| 一区2区3区在线看| 国产精品亚洲а∨天堂免在线| 色婷婷精品久久二区二区蜜臂av | 一区二区免费在线| 亚洲色图欧美在线| 久久国产婷婷国产香蕉| 91在线你懂得| 中文字幕一区二区三区色视频 | 菠萝蜜视频在线观看一区| 在线不卡的av| 午夜精品一区二区三区电影天堂| 成人免费视频caoporn| 欧美不卡在线视频| 蜜桃一区二区三区四区| 欧美日韩一级黄| 香蕉久久夜色精品国产使用方法 | 欧美变态tickle挠乳网站| 亚洲一区二区精品视频| 色先锋资源久久综合| 国产精品女人毛片| av成人动漫在线观看| 亚洲柠檬福利资源导航| 日本久久电影网| 亚洲一区二区视频在线观看| 欧美色综合久久| 日韩精品91亚洲二区在线观看 | 免费高清在线一区| 精品久久久久久无| 成人av在线一区二区三区| 中文字幕一区二区在线观看| 成人小视频免费观看| 色综合天天综合狠狠| 亚洲老司机在线| 91老司机福利 在线| 中文字幕在线视频一区| 色先锋久久av资源部| 一区二区三区不卡在线观看| av网站一区二区三区| 国产欧美精品一区二区色综合 | 捆绑紧缚一区二区三区视频| 欧美日韩一区二区三区四区| 亚洲福利国产精品| 欧美一区二区在线免费观看| 视频一区视频二区中文字幕| 日韩一级片网址| 国产成人av自拍| 天天做天天摸天天爽国产一区| 欧美丝袜丝交足nylons图片| 日韩国产精品久久| 中文字幕制服丝袜一区二区三区| 国产成人亚洲综合a∨猫咪| 国产欧美一区二区三区网站| 一本高清dvd不卡在线观看| 蜜桃av噜噜一区二区三区小说| 久久久91精品国产一区二区精品| 91免费在线视频观看| 蜜臀国产一区二区三区在线播放| 国产精品久久久久久久裸模| 91精品国产综合久久久久久 | 欧美日韩在线播放三区四区| 久久精品72免费观看| 中文字幕在线不卡国产视频| 欧美三区免费完整视频在线观看| 日韩精品色哟哟| 一区二区三区四区精品在线视频 | 精品久久久久久无| 欧美午夜精品一区| 91久久精品一区二区二区| 成人av在线资源网站| 亚洲国产综合91精品麻豆| 欧美老年两性高潮| 在线精品视频一区二区三四| 国产成人午夜精品影院观看视频| 免费三级欧美电影| 日日夜夜精品视频天天综合网| 亚洲欧洲性图库| 亚洲欧美日韩国产另类专区| 国产精品日日摸夜夜摸av| 久久久91精品国产一区二区精品 | 国产三级精品在线| 中文一区二区完整视频在线观看| 欧美成人三级在线| 久久久五月婷婷| 国产精品欧美久久久久无广告| 国产精品亲子伦对白| 久久亚洲精精品中文字幕早川悠里 | 亚洲欧美激情小说另类| 伊人开心综合网| 亚洲国产人成综合网站| 青青国产91久久久久久| 国产资源精品在线观看| 成人a级免费电影| 欧美老肥妇做.爰bbww| 久久午夜老司机| 国产精品传媒入口麻豆| 麻豆精品一区二区av白丝在线| 国产美女精品在线| 色94色欧美sute亚洲线路一ni | 色噜噜久久综合| 717成人午夜免费福利电影| 欧美韩国日本综合| 亚洲超丰满肉感bbw| 成人av影院在线| 久久欧美一区二区| 精品视频在线免费看| 91久久免费观看| 久久婷婷综合激情| 久久精品国产亚洲a| 国产精品影视在线观看| 欧美主播一区二区三区| 欧美电影免费观看高清完整版在线| 国产精品免费观看视频| 国产宾馆实践打屁股91| 日本韩国欧美国产| 亚洲欧美日韩人成在线播放| 国产一区二区伦理| 日韩一级免费观看| 日本强好片久久久久久aaa| 色综合激情久久| 自拍偷自拍亚洲精品播放| 成人激情免费视频| 国产精品久久久久影院| 国产成人亚洲综合a∨猫咪| 精品福利一区二区三区免费视频| 日韩在线一区二区| 欧美一区三区二区| 三级亚洲高清视频| 日韩三级电影网址| 国产一区二区伦理| 中文字幕在线观看一区二区| 成人激情小说乱人伦| 国产精品国产三级国产有无不卡 | 色偷偷88欧美精品久久久| 国产精品成人免费在线| 色综合中文综合网| 亚洲成av人片在www色猫咪| 宅男噜噜噜66一区二区66| 一区二区三区国产精华| 国产午夜精品一区二区三区嫩草| 99久久婷婷国产综合精品电影| 亚洲综合色噜噜狠狠| 制服丝袜成人动漫| 成人ar影院免费观看视频| 一区二区在线观看视频| 91精品国产麻豆| 欧美理论在线播放| 国产成人精品www牛牛影视| 国产精品污污网站在线观看| 成人av免费网站| 极品销魂美女一区二区三区| 亚洲人成在线播放网站岛国| 日韩区在线观看| 色综合婷婷久久| av电影一区二区| 国产又粗又猛又爽又黄91精品| 亚洲一区二区三区免费视频| 99国产精品久久久久久久久久 | 欧美日韩国产美| 蜜桃久久久久久久| 精品区一区二区| 国产精品亚洲午夜一区二区三区 | 一本色道亚洲精品aⅴ| 亚洲免费视频成人| 日韩一区二区精品在线观看| 日本伊人色综合网| 国产精品毛片久久久久久久| 欧美亚洲国产bt| 久久99九九99精品| 日韩美女视频一区| 欧美日韩国产高清一区| 不卡视频在线观看| 99久精品国产| 欧美色图天堂网| 91精品国产色综合久久ai换脸| 欧美男生操女生| 欧美成人性战久久|