Shell字串操作大全
1.字串宣告
一般字串宣告時,都會賦值
str='test'
但是在指令碼執行中,為了避免出現引用為宣告的字串變數時,可以在如下處理:
#如果str沒宣告,則輸出DEFAULT
echo "${str=DEFAULT}"
#DEFAULT
2.字串長度
str=‘abc,def,ghi,abcjkl’
#字串長度
echo ${#str}
3.字串擷取
從位置position開始擷取字串
格式: ${str:position}
#從第5個元素開始擷取
echo ${str:5}
#ef,ghi,abcjkl
從start開始,擷取長度為length的字串
格式:${str:start:length}
echo ${str:5:8}
#ef,ghi,a
從str開頭開始刪除substring匹配
格式:${str#substring}或${str##substring}
str="abc,def,ghi,abcjkl"
#從str開頭開始刪除最短的a*c匹配
echo ${str#a*c}
#,def,ghi,abcjkl
#從str開頭開始刪除最長的a*c匹配
echo ${str##a*c}
#jkl
從str結尾開始刪除substring匹配
格式:${str%substring}或${str%%substring}
#從str結尾開始刪除最短的b*l匹配 echo ${str%b*l} #abc,def,ghi,a
#從str結尾開始刪除最長的b*l匹配
echo ${str%%b*l}
#a
4.字串替換
用replace替換字串中第一個substring格式:${str/substring/replace}或者${str//substring/replace}
#用TEST替換字串中第一個abc
echo ${str/abc/TEST}
#TEST,def,ghi,abcjkl
#用TEST替換字串中所有的abc
echo ${str//abc/TEST}
#TEST,def,ghi,TESTjkl
#從str開頭匹配,用TEST替換最長的a*c
echo ${str/#a*c/TEST}
#TESTjkl
#從str結尾匹配,用TEST替換最長的b*l echo ${str/%b*l/TEST} #aTEST
5.expr操作字串
對於上面的一些操作,如果改用expr執行,那麼就很簡單了:str='2016-01-05'
#求字串長度
length=`expr length $str`
echo $length
#10
#擷取字串
substr=`expr substr $str 1 4`
echo $substr
#2016
#求字串中元素的下標索引,如果元素不存在輸出0(因為此時索引從1開始)
index=`expr index $str "2"`
echo $index
#1
6.split字串
一般擷取字串還可以用cut和awk,如:str='2016-01-05'
echo $str | awk -F '-' '{print $1}'
echo $str|awk '{print substr($str,1,4)}'
echo $str | awk -F '-' '{for( i=1;i<=NF; i++ ) print $i}'
#2016
#2016
#2016
#01
#05
但是,不建議採用這種方式,因為當檔案很大,有很多行,上述方式需要開闢管道,會啟動新程序,效率很低下。同時,如果要把awk結果存在陣列時,就還需要一個for迴圈才行。
因此,建議採用下面這種方式:
arr=(${str//-/ })
echo ${arr[1]}
#01
把split結果存到陣列中後,剩下的就是對陣列的操作,如果對Shell陣列不熟,那麼可以參考Shell陣列Shell字串操作、Shell陣列熟悉之後就可以用Shell進行小檔案處理。
相關推薦
Shell字串操作大全
1.字串宣告 一般字串宣告時,都會賦值 str='test' 但是在指令碼執行中,為了避免出現引用為宣告的字串變數時,可以在如下處理: #如果str沒宣告,則輸出DEFAULT echo "${str=DEFAULT}" #DEFAULT 2.字串長度 str=‘a
shell 字串操作 + 變數替換
本篇內容包括: 字串操作 變數替換 1.字串操作 表示式 含義 ${#string} 獲取字
shell字串操作
表示式 含義 ${#string} $string的長度 expr length $string $string的長度 expr
Linux Shell 字串操作(長度/查詢/替換)詳解
在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如:awk、sed都可以做字串各種操作。 其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。 一、判斷讀取字串值
Bash Shell(字串)操作小結
基本下面引用的文章,加了幾項, 做個記錄,懶得記了,也省得每次Google。 1. 取長度 1 str="abcd" 2 expr length $str # 4 3 echo ${#str} # 4 4 expr"$st
shell字串操作(一)——字串變數
一、字串變數定義與賦值 符號意義: :空測試 =>空為真 - 負向測試 =>不存在為真 + 正向測試 =>存在為真 = 賦值 ?有問題,錯誤 表示式 含義 示例 var=string var='string
linux shell 字串操作(長度,查詢,替換)詳解 BASH
在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如:awk,sed都可以做字串各種操作。 其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。 一、判斷讀取字串值表示式含義${var}變數var的值, 與$var相同
Linux中shell檔案操作大全
1.建立資料夾 #!/bin/sh mkdir -m 777 "%%1" 2.建立檔案 #!/bin/sh touch "%%1" 3.刪除檔案 #!/bin/sh rm -if "%%1" 4.刪除資料夾 #!/bin/sh rm -rf "%%1" 5.刪除一個目錄下所有的資料夾 #!/bin/bash
javascript中字串常用操作總結、JS字串操作大全
字串的操作在js中非常頻繁,也非常重要。以往看完書之後都能記得非常清楚,但稍微隔一段時間不用,便會忘得差不多,記性不好是硬傷啊。。。今天就對字串的一些常用操作做個整理,一者加深印象,二者方便今後溫習查閱。 String物件屬性 (1) length屬性 length
shell中的字串操作——字串的切割總結
前言 在python和java等語言中,對字串操作大多都是呼叫函式來完成,但是像shell這種使用c語言編寫的程式,對字串的切割顯得更加簡單。shell指令碼中對字串的切割有很多種,在這裡我將我熟悉,好用的方法給總結出來,分享給大家,希望能夠對你們的學習和工作起到幫助。 1、${va
shell指令碼關於字串操作
字串單引號和雙引號的差別 單引號中間不能再次出現單引號,這就意味這單引號中間出現變數是無效的,直接點說,單引號中間無論出現什麼都會原樣輸出。但是單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符後也不行),但可成對出現,作為字串拼接使用。雙引號中間是可以出現變數的,而且雙引號中間是
shell 字串擷取操作
字串操作(長度,讀取,替換) {#string} $string的長度 ${string:position} 在$string中, 從位置$position開始提取子串 ${string:position:le
C語言字串操作總結大全(超詳細) (轉)
轉自部落格園:DoubleLi 1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串
bash字串操作以及shell中$(( ))與$( )還有${ }的區別
介紹下Shell中的${}、##和%%使用範例,本文給出了不同情況下得到的結果。 假設定義了一個變數為: 程式碼如下: file=/dir1/dir2/dir3/my.file.txt 可以用${ }分別替換得到不同的值: ${file#*/}:刪掉第一個 / 及其左邊的字串:dir1/di
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
shell指令碼之字串操作
1.取字元長度 var="abcdef" echo ${#var} echo ${var} | awk '{print length($0)}' echo ${var} | awk -F "" '{print NF}' echo `expr length ${v
Python3中字串操作詳解 字串操作方法大全
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #Author:sking 4 #Python3字串操作方法詳解 Python3中字串操作方法大全 5 6 name = "skings" 7 8 print(nam
C語言字串操作總結大全(超詳細)
1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 strc
Python 字串操作方法大全
1、去空格及特殊符號 複製程式碼程式碼如下: s.strip().lstrip().rstrip(',') 2、複製字串 複製程式碼程式碼如下: #strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print s
C語言字串操作總結大全
1)字串操作 strcpy(p, p1) 複製字串 strncpy(p, p1, n) 複製指定長度字串 strcat(p, p1) 附加字串 strncat(p, p1, n) 附加指定長度字串 strlen(p) 取字串長度 strcmp(p, p1) 比較字