1. 程式人生 > >Shell字串操作大全

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) 比較字