shell中字符串操作【轉】

轉自:http://blog.chinaunix.net/uid-29091195-id-3974751.html

我們所遇到的編程語言中(匯編除外)都少不了字符串處理函數吧,
當然shell編程也不例外咯,那么下面我們一起來看下shell中字符串
處理的相關操作吧。大概下面的字符串操作可以分為兩種類型,一種
屬于變量替換,另一種屬于繼承unix expr命令吧!
??

復制代碼
  
1、測試字符串長度${#string}expr length $stringexpr "$string" : '.*'例:#!/bin/bashstr="asfd"echo "${#str}"a=expr length $strecho "a=$a"a=0a=`expr "$str" : '.*'`echo "a=$a"2、匹配字符串開頭的子串長度expr match "$string" '$substring'$substring是一個正則表達式.expr "$string" : '$substring'$substring是一個正則表達式.例:#!/bin/bashstr=abcABC123ABCabcecho `expr match "$str" 'abc[A-Z]*.2'`     # 8echo `expr "$str" : 'abc[A-Z]*.2'`          # 83、索引expr index $string $substring在字符串$string中所匹配到的$substring第一次所出現的位置.例:#!/bin/bashstr=abcABC123ABCabcecho `expr index "$str" C`     # 6     C 字符的位置.echo `expr index "$str" c`     # 34、提取子串${string:position}在$string中從位置$position開始提取子串。如果$string是"*"或者"@", 那么將會提取從位置$position開始的位置參數. [1]${string:position:length}在$string中從位置$position開始提取$length長度的子串.例:#!/bin/bashstr="abcABC123ABCabc"echo ${str:0}            #輸出abcABC123ABCabcecho ${str:3}            #輸出ABC123ABCabc echo ${str:6:3}            #輸出1235、子串削除${string#substring}從$string的開頭位置截掉最短匹配的$substring.${string##substring}從$string的開頭位置截掉最長匹配的$substring.例:#!/bin/bashstr="abcABC123ABCabc"echo ${str#a*C}            #輸出123ABCabcecho ${str##a*C}        #輸出abcecho ${str##a*1}        #輸出23ABCabc${string%substring}從$string的結尾位置截掉最短匹配的$substring.${string%%substring}從$string的結尾位置截掉最長匹配的$substring.例:#!/bin/bashstr=abcABC123ABCabcecho ${str%b*c}     #輸出 abcABC123ABCa        echo ${str%%b*c}     #輸出 a 6、子串替換${string/substring/replacement}使用$replacement來替換第一個匹配的$substring.${string//substring/replacement}
    使用$replacement來替換所有匹配的$substring.${string/%substring/replacement}如果$substring匹配$string的結尾部分, 那么就用$replacement來替換$substring.${string/#substring/replacement}如果$substring匹配$string的開頭部分, 那么就用$replacement來替換$substring.例:#!/bin/bashstr="abcABC123ABCabc"echo ${str/ABC/&&&}        #輸出 abc&&&123ABCabcecho ${str//ABC/&&&&}    #輸出 abc&&&&123&&&&abcecho ${str/%abc/&&&}    #輸出 abcABC123ABC&&&echo ${str/#abc/&&&}     #輸出 &&&ABC123ABCabc
復制代碼

?













本文轉自張昺華-sky博客園博客,原文鏈接:http://www.cnblogs.com/sky-heaven/p/5681899.html,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/285326.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285326.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285326.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何提高上傳帶寬

參考文章:http://jingyan.baidu.com/article/db55b609af631b4ba30a2f23.html 1、已管理員身份運行:netsh interface tcp set global autotuningdisabled 2、 打開注冊表 找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\A FD\Parameters 3、創建新…

[轉]神經網絡框架

Pytorch上手使用 近期學習了另一個深度學習框架庫Pytorch,對學習進行一些總結,方便自己回顧。 Pytorch是torch的python版本,是由Facebook開源的神經網絡框架。與Tensorflow的靜態計算圖不同,pytorch的計算圖是動態的,可…

Eclipse啟動時布局不合理調整

1. 關掉 啟動頁 2. 關掉InstSearch頁 3.修正InSearch布局 3.1 默認InstSearch不合理,影響使用。 3.2 Inst 搜索一次,然后最小化InstSearch框,再從右側點擊,即可。轉載于:https://www.cnblogs.com/jhj117/p/6121298.html

10分鐘實現dotnet程序在linux下的持續部署

背景 一直以來,程序署都是非常麻煩且無聊的事情,在公司一般都會有 devops 方案,整個 cicd 過程涉及的工具還是挺多的,搭建起來比較麻煩。那么對于一些自己的小型項目,又不想搭建一套這樣的環境,怎么辦呢。。…

C語言試題131之將一個數組逆序輸出。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:將一個數組逆序輸出。 分析:…

【錯誤異常大全】:無法加載 DLL“ArcGISVersion.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。

文章目錄 錯誤異常解決方案錯誤異常 無法加載 DLL“ArcGISVersion.dll”: 找不到指定的模塊。 (異常來自 HRESULT:0x8007007E)。 解決方案 將目標平臺改為x86,具體步驟如下: 點擊【配置管理器】。 下拉活動解決方案平臺,點擊【新建】。 選擇x86,點擊【確定】。

Go語言之反射

和Java語言一樣,Go也實現運行時反射,這為我們提供一種可以在運行時操作任意類型對象的能力。比如我們可以查看一個接口變量的具體類型,看看一個結構體有多少字段,如何修改某個字段的值等。TypeOf和ValueOf在Go的反射定義中&#x…

博客即簡歷

本文轉載自:http://www.cnblogs.com/stoneniqiu/p/5271248.html。 我個人也是在一直堅持寫博客,每月至少一篇,并慢慢地將其變成了自己的習慣。一些想法與本文不謀而合,所以決定轉載此文。 --------------------------------------…

C語言試題132之取一個整數 a 從右端開始的 4~7 位。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:取一個整數 a 從右端開始的 …

【錯誤異常大全】:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS

文章目錄 問題描述解決方法問題描述 ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS components. 解決方法 打開program.cs,把ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop); 放到Application…

統一建模語言 UML

目錄 統一建模語言 UMLUML定義了5類10種模型圖一用例圖用于建立需求模型二靜態圖主要描述系統的靜態表示和關系包括類圖包圖對象圖三行為圖描述系統動態模型和對象組成的交換關系包括狀態圖和活動圖四交互圖用于描述對象間的交互關系由一組對象和它們之間的關系組成包含它們之間…

[轉]npm生成的package.json文件中依賴項版本號前的波浪號(~)和插入符號(^)是啥意思?

package.json一般也就長這么模樣: {"name": "","description": "","version": "4.17.1","author": "","contributors": [],"license": "MIT",&quo…

使用 C# 提取 PDF 文件中的所有文字(支持 .NET Core)

PDF 是 Portable Document Format 的簡稱,意為“可攜帶文檔格式”,是由 Adobe Systems 用于與應用程序、操作系統、硬件無關的方式進行文件交換所發展出的文件格式。PDF 文件以 PostScript 語言圖象模型為基礎,無論在哪種打印機上都可保證精確…

【錯誤異常大全】:正嘗試在 OS 加載程序鎖內執行托管代碼。不要嘗試在 DllMain 或映像初始化函數內運行托管代碼,這樣做會導致應用程序掛起。

文章目錄 錯誤異常:解決方案一:解決方案二:錯誤異常: 正嘗試在 OS 加載程序鎖內執行托管代碼。不要嘗試在 DllMain 或映像初始化函數內運行托管代碼,這樣做會導致應用程序掛起。 解決方案一: 1、把VS菜單的 調試->異常->Managed Debuggin Assistants->LoaderLo…

Linux——JDK的部署

1.檢查一下系統中的jdk版本[java] view plaincopy $>java -version java version "1.7.0_"OpenJDK Runtime Environment (IcedTea6 1.11.1) (rhel-1.45.1.11.1.el6-x86_64)OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)2.檢測JDK安裝包[java] view pla…

python字符串格式化方法 format函數的使用

python從2.6開始支持format,新的更加容易讀懂的字符串格式化方法,從原來的% 模式變成新的可讀性更強的花括號聲明{}、用于渲染前的參數引用聲明, 花括號里可以用數字代表引用參數的序號, 或者 變量名直接引用。從format參數引入的…

C語言試題133之畫圓形

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:畫圓形 2 、溫馨提示 想獲取…

ReactDom.render和React.render的區別

這個是react最新版api,也就是0.14版本做出的改變。主要是為了使React能在更多的不同環境下更快、更容易構建。于是把react分成了react和react-dom兩個部分。這樣就為web版的react和移動端的React Native共享組件鋪平了道路。也就是說我們可以跨平臺使用相同的react組…

[轉]阿里編程規范(精簡版)

文章目錄 1、簡介2、命名:3、格式規約4、注釋規約5、OOP規約6、集合處理7、控制語句8、異常9、日志10、單元測試11、工程規約1、簡介 統一規范標準將有助于提高行業編碼規范化水平,幫助行業人員提高開發質量和效率、大大降低代碼維護成本 2017年年初,首次…

C#(Sharp)GDI plus與圖形編程(計算機圖形學必備知識)

文章目錄 9.1 GDI+與圖形編程9.1.0 GDI概念9.1.1 GDI+繪圖命名空間9.1.2 坐標系統9.1.3 Graphics類9.2 繪圖工具類9.2.1 Pen類9.2.2 常用圖形的繪制方法9.2.3 Brush 類9.3 繪制相關圖形9.3.1 繪制曲線9.1 GDI+與圖形編程 9.1.0 GDI概念 GDI是Graphics Device Interface的縮寫…