Shell 字符串截取

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

  1. Linux 的字符串截取很有用。有八種方法。

    假設有變量 var=http://www.aaa.com/123.htm

    1. # 號截取,刪除左邊字符,保留右邊字符。

    echo ${var#*//}{var#*//}

    其中 var 是變量名,# 號是運算符,*// 表示從左邊開始刪除第一個 // 號及左邊的所有字符

    即刪除 http://

    結果是 :www.aaa.com/123.htm

    2. ## 號截取,刪除左邊字符,保留右邊字符。

    echo ${var##*/}{var##*/}

    ##*/ 表示從左邊開始刪除最后(最右邊)一個 / 號及左邊的所有字符

    即刪除 http://www.aaa.com/

    結果是 123.htm

    3. %號截取,刪除右邊字符,保留左邊字符

    echo ${var%/*}{var%/*}

    %/* 表示從右邊開始,刪除第一個 / 號及右邊的字符

    結果是:http://www.aaa.com

    4. %% 號截取,刪除右邊字符,保留左邊字符

    echo ${var%%/*}{var%%/*}

    %%/* 表示從右邊開始,刪除最后(最左邊)一個 / 號及右邊的字符

    結果是:http:

    5. 從左邊第幾個字符開始,及字符的個數

    echo ${var:0:5}{var:0:5}

    其中的 0 表示左邊第一個字符開始,5 表示字符的總個數。

    結果是:http:

    6. 從左邊第幾個字符開始,一直到結束。

    echo ${var:7}{var:7}

    其中的 7 表示左邊第8個字符開始,一直到結束。

    結果是 :www.aaa.com/123.htm

    7. 從右邊第幾個字符開始,及字符的個數

    echo ${var:0-7:3}{var:0-7:3}

    其中的 0-7 表示右邊算起第七個字符開始,3 表示字符的個數。

    結果是:123

    8. 從右邊第幾個字符開始,一直到結束。

    echo ${var:0-7}{var:0-7}

    表示從右邊第七個字符開始,一直到結束。

    結果是:123.htm

    注:(左邊的第一個字符是用 0 表示,右邊的第一個字符用 0-1 表示)

  2. ?

    ###?表示從左邊開始刪除。一個?#?表示從左邊刪除到第一個指定的字符;兩個?#?表示從左邊刪除到最后一個指定的字符。

    %%%?表示從右邊開始刪除。一個?%?表示從右邊刪除到第一個指定的字符;兩個?%?表示從左邊刪除到最后一個指定的字符。

    刪除包括了指定的字符本身。

  3. ?
    #!bin/bash
    #author:amauvar="http://www.runoob.com/linux/linux-shell-variable.html"s1=${var%%t*}
    s2=${var%t*}
    s3=${var%%.*}
    s4=${var#*/}
    s5=${var##*/}
    #author:amauvar="http://www.runoob.com/linux/linux-shell-variable.html"s1=${var%%t*}
    s2=${var%t*}
    s3=${var%%.*}
    s4=${var#*/}
    s5=${var##*/}

    echo "關于字符串的截取%,#的使用方法"
    echo "原字符串為:"${var}
    echo "%%t*的效果:"${s1}
    echo "%t*的效果:"${s2}
    echo "%%.*的效果:"${s3}
    echo "#*/的效果:"${s4}
    echo "##*/的效果:"${s5}

    運行結果:

    關于字符串的截取%,#的使用方法
    原字符串為:http://www.runoob.com/linux/linux-shell-variable.html
    %%t*的效果:h
    %t*的效果:http://www.runoob.com/linux/linux-shell-variable.h
    %%.*的效果:http://www
    #*/的效果:/www.runoob.com/linux/linux-shell-variable.html
    ##*/的效果:linux-shell-variable.html
    原字符串為:http://www.runoob.com/linux/linux-shell-variable.html
    %%t*的效果:h
    %t*的效果:http://www.runoob.com/linux/linux-shell-variable.h
    %%.*的效果:http://www
    #*/的效果:/www.runoob.com/linux/linux-shell-variable.html
    ##*/的效果:linux-shell-variable.html
  4. ?

    計算字符長度也可是使用?length:

    string="hello,everyone my name is xiaoming"
    expr length "$string"="hello,everyone my name is xiaoming"
    expr length "$string"

    輸出:34

    注意:string字符串里邊有空格,所以需要添加雙引號

    使用?expr?命令時,表達式中的運算符左右必須包含空格,如果不包含空格,將會輸出表達式本身:

    expr 5+6    // 直接輸出 5+6
    expr 5 + 6       // 輸出 115+6    // 直接輸出 5+6
    expr 5 + 6       // 輸出 11

    對于某些運算符,還需要我們使用符號"\"進行轉義,否則就會提示語法錯誤。

    expr 5 * 6       // 輸出錯誤
    expr 5 \* 6      // 輸出305 * 6       // 輸出錯誤
    expr 5 \* 6      // 輸出30

?

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

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

相關文章

go語言漸入佳境[6]-operator運算符

運算符和其他語言一樣,Go語言支持多種運算符,用于對變量進行運算。12345678910111213package mainimport "fmt"func main(){ //math() //relation() //logic() //wei() Assign()}算術運算符123456789101112func math(){ a : 4 b:2 fmt.Printf(…

Android應用開發—setResult()的調用時機

本文轉載自setResult()的調用時機,此處做了重新的排版,只是感覺markdown的排版比較好看些,侵刪。 今天遇到這樣一個問題,我在Activity-A中用startActivityForResult()方法啟動了Activity-B,并且在B中通過setResult()方…

記錄騰訊云中礦機病毒處理過程(重裝系統了fu*k)

2019-1-21日常上班的周一 剛想學學kafka,登錄與服務器看看把,誰知ssh特別慢,很奇怪,我以為是我網速問題,斷了wifi,換了網線,通過iterm想要ssh rootx.x.x.x,但是上不去? 就…

從創業失敗中學到的七條教訓

摘要:每個創業者不可能首次創業就能成功。他們的失敗經驗,或許可以指導其他創業者獲得迅速成功。Joshua Hays在文章《7 things I learned from failing that you can avoid》總結了創業失敗后獲得的七條教訓,希望其他創業者可以從中有所收獲&…

unexpected EOF while looking for matching ``‘

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 只是簡單的測試一個shell 腳本,報錯如題。 原因: 雙引號格式不對。 引號切換為英語格式重新輸入,再運…

對象反序列化出現類型不匹配的情況(spring-boot-devtools)

目前在做springboot項目的shiro session redis共享功能。但是有一個對象我把它放到redis中之后再取出來就會出現類型不匹配的異常 AuthorizationUser user (AuthorizationUser) cache.getSuper(key); 異常信息: java.lang.ClassCastException: com.ch.evaluation.a…

最后一周總結

1) 回歸第一周目標 對于第一周的目標,在提高代碼量,多寫多練方面達到了,之前結點編程時還不是很熟悉python,現在寫的比較熟練了,同時學習了一門新的語言Julia,在學習的過程中也看了Julia和Flux的…

音視頻多媒體協議相關資料匯總

未知問題: 編碼,封裝,協議的區別: 如何將TS源流重新封裝并通過P2P協議傳輸在安卓終端和蘋果終端播放封裝 介紹完了視頻編碼后,再來介紹一些封裝。沿用前面的比喻,封裝可以理解為采用哪種貨車去運輸&…

谷歌地圖VS蘋果地圖:大數據領域競爭

摘要:iOS 6推出之后,爭議最大的是什么?蘋果地圖。蘋果地圖成為人們抨擊iOS 6的首選,而蘋果放棄谷歌地圖選擇自力更生是迫不得已。蘋果和谷歌之間的競爭領域可以用三個字來概括:大數據。谷歌擁有大數據,而蘋…

Shell 參數傳遞、 $* 與 $@ 區別

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 傳遞參數 腳本內獲取參數的格式為: $n。n 代表一個數字,1 為執行腳本的第一個參數, 2 為執行腳本的第…

微軟正在考慮將Windows默認瀏覽器改為Chromium

據外媒報道,微軟正在構建一個基于Chromium的瀏覽器,代號為Anaheim,目標是取代Windows中的Edge。 Microsoft Edge是微軟于2015年推出的瀏覽器,該瀏覽器取代了IE成為Windows 10的默認瀏覽器。盡管如此,Microsoft Edge并沒…

css文本屬性

text-align文本水平對齊屬性 取值 left(默認) right center text-indent 文本縮進屬性 單位可以是px也可以是em(字符) text-decoration 文本裝飾屬性 取值 underline(下劃線) overline(上劃線) line-though(刪除線) 轉載于:https://www.cnblogs.com/c-aha/p/10298422.html

三次握手的第三個ACK包丟了,會發生什么?

轉載自三次握手的第三個ACK包丟了,TCP的處理方式 三次握手的第三個ACK包丟了,客戶端認為連接建立,寫數據時,會觸發RST。 當Client端收到Server的SYNACK應答后,其狀態變為ESTABLISHED,并發送ACK包給Server&a…

運營商與廠商發力 智能機進入700元以下時代

千元智能手機的成功,并沒有讓運營商以及手機廠商感到滿足。繼中國電信宣布重點打造600元智能手機后,近日,中國聯通也表態將發力700元以下智能手機市場。而運營商的表態立刻引來了多家手機廠商的呼應,產品價格的繼續下探&#xff0…

輸入一個數,判斷他是不是質數

思路:先給一個數字x,然后讓這個數字x從2開始除,如果 x 從 2 除到 (x-1) 能被整除,那這就不是質數.如果不能被整除,那就是質數. 當然如果x小于2,那x必然不是質數,也不是合數. #輸入一個數,判斷他是不是質數 x int(input("請輸入一個數字:")) #先輸入一個數字 co…

一分鐘了解四層/七層反向代理

轉自公眾號:架構師之路今天花幾分鐘簡單和大家解釋一下。場景:訪問用戶通過proxy請求被訪問的真實服務器 路徑:用戶 -> proxy -> real-server什么是代理? 回答:[proxy]代表[訪問用戶],此時proxy是代理…

tcp建立連接為什么需要三次握手

這是一個看似很“簡單”的問題,但貌似并沒有一個官方統一的答案。搜索了相關的資料,列舉出一些答案。 以下部分轉載自:tcp建立連接為什么需要三次握手 在《計算機網絡》一書中其中有提到,三次握手的目的是“為了防止已經失效的連…

SFTPUtils工具類及使用

配置maven <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.54</version> </dependency> 工具類 package com.sftp;import com.jcraft.jsch.*; import com.jcraft.jsch.ChannelSftp.LsE…

國內手機產業混亂:產業一窩蜂 企業撈快錢

對于當前國內手機行業的現狀&#xff0c;本報記者采訪的多位業內人士表示&#xff0c;目前國內手機行業仍是“紅海”格局&#xff0c;多數企業并不了解手機產業規律&#xff0c;看到有錢賺就“一窩蜂”上項目。有行業人士認為&#xff0c;要走出目前行業的現狀&#xff0c;企業…

查看私密文章方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 我只是記錄下&#xff0c;曾經寫過一次文章&#xff0c;勾選了私密&#xff0c;再后來就找不到了。 下面這個鏈接可以查出那篇文章&…