1. 程式人生 > >Shell中字串的切割、拼接、比較、替換

Shell中字串的切割、拼接、比較、替換

【擷取】

一、Linux shell 擷取字元變數的前8位,有方法如下:

1.expr substr “$a1 8
2.echo $a|awk ‘{print substr(,1,8)}’
3.echo $a|cut -c1-8
4.echo $
5.expr $a : ‘(.\).*’
6.echo $a|dd bs=1 count=8 2>/dev/null

這裡寫圖片描述
補充:

expr(選項)(引數)
expr的常用運算子:+ - * 、 %
expr 2 + 3
5

二、按指定的字串擷取

1、第一種方法:
${varible##*string} 從左向右擷取最後一個string後的字串
${varible#*string}從左向右擷取第一個string後的字串 ${varible%%string*}從右向左擷取最後一個string後的字串 ${varible%string*}從右向左擷取第一個string後的字串 “*”只是一個萬用字元可以不要

例子:

$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}
rthought.jpg
$ echo ${MYVAR#*fo}
odforthought.jpg

這裡寫圖片描述

2、第二種方法:${varible:n1:n2}:擷取變數varible從n1到n2之間的字串。

可以根據特定字元偏移和長度,使用另一種形式的變數擴充套件,來選擇特定子字串。試著在 bash 中輸入以下行:

$ EXCLAIM=cowabunga
$ echo ${EXCLAIM:0:3}
cow
$ echo ${EXCLAIM:3:7}
abunga

這種形式的字串截斷非常簡便,只需用冒號分開來指定起始字元和子字串長度。

三、按照指定要求分割:
比如獲取字尾名
ls -al | cut -d “.” -f2

【拼接】

一、拼接字元

$value1=home
$value2=${value1}"="
echo $value2

二、拼接字串

[root@localhost sh]# var1=/etc/
[root@localhost sh]# var2=yum.repos.d/
[root@localhost sh]# var3=${var1}${var2} [root@localhost sh]# echo $var3 /etc/yum.repos.d/

【字串比較】

l兩條測試命令:
[
test

-n 判斷不為空
-z 判斷是否為空
相等比較 == 或者=
不相等 !=
小於 需要轉義 \<
大於 需要轉義 >
另外字串提取中雙引號”” 和 單引號‘ ’區別在於單引號不進行任何的變數解釋,就是字串,而雙引號會對其進行解釋

【替換】

替換命令:

${變數/查詢/替換值}  一個'/'表示替換第一個'//'表示替換所有,當查找出中出現了:"/"需要轉移成"\/"
[[email protected] ~]$ test='c:/windows/boot.ini'
[[email protected] ~]$ echo ${test/\//\\}
c:\windows/boot.ini
[[email protected] ~]$ echo ${test//\//\\}
c:\windows\boot.ini 

這裡寫圖片描述

相關推薦

Shell字串切割拼接比較替換

【擷取】 一、Linux shell 擷取字元變數的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.echo $ 5.e

Shell腳本 (二)文本測試整數值比較字符串比較 條件測試操作 if語句應用實例

內存 root 條件測試 主機 serve 覆蓋 整數 local 分數 ####################test命令####################測試特定的表達式是否成立,當條件成立時,測試語句的返回值為0,否則為其他數值格式1:test 條件表達式格

shell輸入輸出重定向,>>><<>/dev/null2>&1<<end<<EOF等

轉載自:https://www.jb51.net/article/106373.htm https://blog.csdn.net/qq_31073871/article/details/80810306 其他參考:www.runoob.com/linux/linux-shell-io-re

Shell字串拼接的方法

我們可以看到在系統中,字串的拼接方法為(.bash_profile檔案): PATH=$PATH:$HOME/.local/bin:$HOME/bin 以及《Linux命令列與Shell指令碼程式設計大全中提到的》 var=${var1}${var2} #!/bin/bash va

Shell字串比較忽略大小寫的問題

兩個字串,要比較忽略大小寫後是否相等的問題,可以有很多種方法。 方法一: 藉助tr命令來處理 #!/bin/bash name1="TOm" name2="tom" temp1=$(echo $name1 | tr [a-z] [A-Z]) # 將name1全部轉變成大寫再做比較

shell輸入輸出重定向,>>><<>/dev/null2>&1<<end<<EOF等

實際上,輸入輸出重定向中的3個標準檔案描述符,輸入0、正常輸出1、錯誤輸出2,這三個值經常被省略。 舉例: ls > shell_out 等價於: ls 1> shell_out 前言 相信大家經常能在shell指令碼中發現>/dev/nu

【C# 4】文字轉換。串列埠通訊字串string和位元組陣列byte[]ASCII的轉換

string轉byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]轉string:string str = System.Text.Encoding.Default.GetString ( byteArra

shell字串為空的判斷方法

主要有以下幾種方法: echo “$str”|awk '{print length($0)}'expr length “$str”echo “$str”|wc -c但是第三種得出的值會多1,可能是把結束符也計算在內了判斷字串為空的方法有三種:if [ "$str" =  ""

Linux--shell字串的擷取

1.在linux中字串的擷取我們可以用一個命令叫做cut,cut主要擷取方法有三種 1)位元組(bytes),用選項-b ,使用方法cut -b/c/f  2)字元(characters),用選

Shell字串的擷取方法

這篇文章主要介紹了Shell指令碼8種字串擷取方法總結,每個方法給出了例項程式碼和操作結果,一目瞭然,需要的朋友可以參考下 Linux 的字串擷取很有用。有八種方法。 假設有變數 var=http://www.aaa.com/123.htm. 1. # 號擷取,

Shell字串分割的三種方法

問題:對於’1,2,3,4,5’這樣的字串輸出採用,分隔開的1 2 3 4 5 特徵:在字串中沒有空格 解決方法1: #!/bin/bash var=’1,2,3,4,5’ var=${var//,/ } #這裡是將var中的,替換為空格 for element in

Shell字串反轉的幾種技巧

【方法一】利用rev命令 備註: 1) rev命令可以對字串進行反轉 2) rev命令還可以對一個或多個檔案進行反轉 【方法二】利用sed命令s引數來替換 1) 對字串長度比較小的轉換 2) 對

sql server字串型別的日期如何比較大小

日期資料在Sql Server資料庫中不都是以日期型別儲存的,如果資料庫中儲存日期欄位的資料型別為varchar,而你又需要對這個日期和另外一個日期進行比較,那麼該怎麼辦呢?總結有以下方法 (1)方法一 這個方法很容易想到,就是純粹地利用字串來比較大小,比如有一個欄位為a

C++字串拼接十六進位制轉十進位制

txt檔案如下: 檔案說明:檔案中為十六進位制資料。 實現:先進行字串拼接,然後進行十六進位制轉十進位制。 字串拼接程式碼: //字串拼接 infile>>string1>>string2; string1=string1+string2

python的is==和cmp()比較字串

python 中的is、==和cmp(),比較字串 經常寫 shell 指令碼知道,字串判斷可以用 =,!= 數字的判斷是 -eq,-ne 等,但是 Python 確不是這樣子地。所以作為慢慢要轉換到用 Python 寫指令碼,這些基本的東西必須要掌握到骨子裡! 在 Python 中比較字串最好是使用簡單邏輯

shellif條件字串數字比對,[[ ]]和[ ]區別

轉載地址:http://71241.blog.51cto.com/61241/1341137 學習shell的時候總是被shell裡的條件判斷方式搞得頭疼,經常不知道改 用[],[[]],(())還是test,let,今天重點說說它們的區別的使用時應該注意的地方.

Shell檔案比較cmpdiffpatch區別

原文地址:http://blog.csdn.net/shanyongxu/article/details/46868089檔案比較所謂的檔案比較,一般設計四個領域1.檢查兩個檔案是否相同,如果不同,找不哪裡不同2.應用兩個檔案的不同之處,使從其中一個回覆另外一個3.使用校驗和

Linux下Shell程式設計之算術運算和邏輯比較(數值型別字串型別檔案型別)

shell程式設計中的算術運算和邏輯比較,主要根據不同運算物件,採用相應的比較、運算方式。 一、數值型 算術運算 ,以變數自增1為例,+ - * / % 等運算方式同理,運算的方式大體四種: i=`expr $i + 1` let i+=1 , let的操作成員不需要

Java 字串比較拼接問題

@[TOC](字串的比較) /——————————————————**字串型別**—————————————————/ Java中用於處理字串常用的有三個類: 1、java.lang.String 2、java.lang.StringBuffer 3、java.lang.StrungBuilder 相

Shell的變量

shell變量、引用、重定向 變量是任何程序或腳本的重要組成部分。變量為程序或腳本訪問內存中的可被修改的一塊數據提供了簡單的方式。Linux Shell中的變量可以被指定為任意的數據類型。Shell中有兩種變量的類型:系統變量(環境變量)和用戶自定義的變量(本地變量或Shell變量)。 環境變量:作用域為