Bash Shell(字串)操作小結
基本下面引用的文章,加了幾項, 做個記錄,懶得記了,也省得每次Google。
1. 取長度
1 |
str="abcd" |
2 |
expr length $str # 4 |
3 |
echo ${#str} # 4 |
4 |
expr"$str" : ".*"# 4 |
好像一般使用第二種
2. 查詢子串的位置
1 |
str="abc" |
2 |
expr index $str "a" # 1 |
3 |
expr index $str "b" # 2 |
4 |
expr index $str "x" # 0 |
5 |
expr index $str "" |
3. 選取子串
1 |
str="abcdef" |
2 |
expr substr "$str" 1 3 # 從第一個位置開始取3個字元, abc |
3 |
expr substr "$str" 2 5 # 從第二個位置開始取5個字元, bcdef |
4 |
expr substr "$str" 4 5 # 從第四個位置開始取5個字元, def |
5 |
6 |
echo ${str:2} # 從第二個位置開始提取字串, bcdef |
7 |
echo ${str:2:3} # 從第二個位置開始提取3個字元, bcd |
8 |
echo ${str:(-2)} # 從倒數第二個位置向左提取字串, abcde |
9 |
echo ${str:(-2):3} # 從倒數第二個位置向左提取6個字元, cde |
4. 擷取子串
01 |
str="abbc,def,ghi,abcjkl" |
02 |
echo ${str#a*c} # ,def,ghi,abcjkl 一個井號(#) 表示從左邊擷取最短的匹配 |
03 |
echo ${str##a*c} # jkl, 兩個井號(##) 表示從左邊擷取最長的匹配 |
04 |
echo ${str |
05 |
echo $[str##"a*c"} # 空,同理 |
06 |
echo ${str#d*f) # abbc,def,ghi,abcjkl, |
07 |
echo ${str#*d*f} # ,ghi,abcjkl |
08 |
09 |
echo ${str%a*l} # abbc,def,ghi 一個百分號(%)表示從右邊擷取最短的匹配 |
10 |
echo ${str%%b*l} # a 兩個百分號表示(%%)表示從右邊擷取最長的匹配 |
11 |
echo ${str%a*c} # abbc,def,ghi,abcjkl |
可以這樣記憶, 井號(#)通常用於表示一個數字,它是放在前面的;百分號(%)解除安裝數字的後面; 或者這樣記憶,在鍵盤佈局中,井號(#)總是位於百分號(%)的左邊(即前面) :-)
5. 字串替換
1 |
str="apple, tree, apple tree" |
2 |
echo ${str/apple/APPLE} # 替換第一次出現的apple |
3 |
echo ${str//apple/APPLE} # 替換所有apple |
4 |
5 |
echo ${str/#apple/APPLE} # 如果字串str以apple開頭,則用APPLE替換它 |
6 |
echo ${str/%apple/APPLE} # 如果字串str以apple結尾,則用APPLE替換它 |
6. 比較
*單組[]是可以的。
1 |
[[ "a.txt" == a* ]] # 邏輯真 (pattern matching) |
2 |
[[ "a.txt" =~ .*\.txt ]] # 邏輯真 (regex matching) |
3 |
[[ "abc" == "abc" ]] # 邏輯真 (string comparision) |
4 |
[[ "11" < "2" ]] # 邏輯真 (string comparision), 按ascii值比較 |
7. 連線
1 |
s1="hello" |
2 |
s2="world" |
3 |
echo ${s1}${s2} # 當然這樣寫 $s1$s2 也行,但最好加上大括號 |
8. 在變數中儲存指令執行的結果
1 |
platform=`uname -p` |
2 |
currentPath=`pwd` |
*注意兩邊不是單引號。
9. 分割字串到一個數組中
1 |
arguments=($(echo ${x} | tr "," "\n")) #x為傳入引數,以逗號分隔 |
10. 大小寫轉換
debPackName=`echo $2|awk '{print tolower($0)}'` #轉為小寫
debPackName=`echo $2|awk '{print toupper($0)}'` #轉為大寫
相關推薦
Bash Shell(字串)操作小結
基本下面引用的文章,加了幾項, 做個記錄,懶得記了,也省得每次Google。 1. 取長度 1 str="abcd" 2 expr length $str # 4 3 echo ${#str} # 4 4 expr"$st
linux shell 字串操作(長度,查詢,替換)詳解 BASH
在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如:awk,sed都可以做字串各種操作。 其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。 一、判斷讀取字串值表示式含義${var}變數var的值, 與$var相同
Bash Shell的操作環境
路徑 ctrl+ star 操作 win 處理 指令 stty sta 路徑和指令搜索順序 bash進站歡迎 bash環境配置文件 終端機設定 通配符和特殊符號 tty1~tty6命令接口會讀取本地計算機的一些按鍵設定 使用stty可以查閱目按鍵內容 [[email
shell 基本操作小結
lena 取字符 ide text cond spa operation ava repl 1.echo和if else fi命令 #!/bin/bash echo hello;echo there filename=demo.sh if [ -e "$filename"
shell 字串操作 + 變數替換
本篇內容包括: 字串操作 變數替換 1.字串操作 表示式 含義 ${#string} 獲取字
shell字串操作
表示式 含義 ${#string} $string的長度 expr length $string $string的長度 expr
Linux Shell 字串操作(長度/查詢/替換)詳解
在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如:awk、sed都可以做字串各種操作。 其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。 一、判斷讀取字串值
Linux:shell變數功能和Bash shell的操作環境
shell的變數功能 sh和bash命令 兩者都是shell,都是解析工具。 bash(Bourne Again SHell) 是Linux標準的預設shell ,它基於Bourne shell,吸收了C shell和Korn shell的一些特性。 sh(Bou
Shell字串操作大全
1.字串宣告 一般字串宣告時,都會賦值 str='test' 但是在指令碼執行中,為了避免出現引用為宣告的字串變數時,可以在如下處理: #如果str沒宣告,則輸出DEFAULT echo "${str=DEFAULT}" #DEFAULT 2.字串長度 str=‘a
Linux Bash Shell字串分割substring等
近期在做持續整合專案,因為要做高使用性的平臺,公司專案組各業務線打包流程不盡相同,採用了業務藏入指令碼的方式,原有java可實現的操作寫入了指令碼中 指令碼開發中遇到的問題是:原java中的字串分割操作(substring indexOf等)不知道怎麼處理(比如/a/b
shell字串操作(一)——字串變數
一、字串變數定義與賦值 符號意義: :空測試 =>空為真 - 負向測試 =>不存在為真 + 正向測試 =>存在為真 = 賦值 ?有問題,錯誤 表示式 含義 示例 var=string var='string
bash字串操作以及shell中$(( ))與$( )還有${ }的區別
介紹下Shell中的${}、##和%%使用範例,本文給出了不同情況下得到的結果。 假設定義了一個變數為: 程式碼如下: file=/dir1/dir2/dir3/my.file.txt 可以用${ }分別替換得到不同的值: ${file#*/}:刪掉第一個 / 及其左邊的字串:dir1/di
shell變數字串常用操作小結
1、常用的基本操作解析: ①${#string} //返回$string的長度(字串中的字元個數),${string} | wc -m也可以達到類似的效果 ②${string:position} //返回$string的position開始的字串(提取字串
bash shell 中時間操作常用方法總結
hour day 當前時間 簡單的 之前 nbsp seconds 獲取 相互 在日常的工作中,bash shell 的時間操作非常頻繁。比如shell腳本定時發送數據統計的時候,會查看當前是否為預定的發送時間。或者使用文件保存一些數據時,一般會生成時間字符串當做文
linux bash shell:最方便的字串大小寫轉換(lowercase/uppercase conversion)
關於字串大小寫轉換,是寫 linux 指令碼經常乾的事兒,所以總想找個方便的方法讓我少打點字兒,搜尋國內的中文資源,網上也能找到很多關於這個帖子,介紹的方法都差不多,用typeset是最簡單的方法了,但我覺得還是不夠簡單,因為需要多定義一個變數。 google上找到這個stackov
shell中的字串操作——字串的切割總結
前言 在python和java等語言中,對字串操作大多都是呼叫函式來完成,但是像shell這種使用c語言編寫的程式,對字串的切割顯得更加簡單。shell指令碼中對字串的切割有很多種,在這裡我將我熟悉,好用的方法給總結出來,分享給大家,希望能夠對你們的學習和工作起到幫助。 1、${va
shell指令碼關於字串操作
字串單引號和雙引號的差別 單引號中間不能再次出現單引號,這就意味這單引號中間出現變數是無效的,直接點說,單引號中間無論出現什麼都會原樣輸出。但是單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,作為字串拼接使用。雙引號中間是可以出現變數的,而且雙引號中間是
shell 字串擷取操作
字串操作(長度,讀取,替換) {#string} $string的長度 ${string:position} 在$string中, 從位置$position開始提取子串 ${string:position:le
Bash 中常見的字串操作
獲取字串長度 ${#string} MyString=abcABC123ABCabc echo ${#MyString} # 結果為 15 注意這會自動去掉字串結尾處的空格,如果在字串中包含空格(開頭、中間或結尾),就需要使用引號把字串包裹起來: MyString
awk字串操作(字串連結、傳入傳出shell變數) awk 字串連線操作(字串轉數字,數字轉字串) awk當中使用外部變數 awk中使用shell的環境變數 awk如何向shell傳值
1.awk基礎 awk的環境變數及其意義 https://blog.csdn.net/snowpay/article/details/52451718 linux awk命令詳解 https://www.cnblogs.com/xudong-bupt/p/3721210.html 2.aw