shell字串操作集

2021-06-07 23:44:36 字數 2477 閱讀 4699

宣告:以下內容來自網際網路

1、如果去掉字串後面的「/」?

例如:/a/b/c//

如何變成

/a/b/c

用乙個土的辦法:

x=/a/b/c//

echo $x|awk -f"//" ''

效果:root@x:~# x=/a/b/c//

root@x:~# echo $x|awk -f"//" ''

/a/b/c

達到了目的,但感覺不爽,請更好方法

sed  's/\/$//g' ufile

x=/a/b/c//

echo $

來自netman的13問

file=/dir1/dir2/dir3/my.file.txt

我們可以用 $ 分別替換獲得不同的值:

$:拿掉第一條 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt

$:拿掉最後一條 / 及其左邊的字串:my.file.txt

$:拿掉第乙個 .  及其左邊的字串:file.txt

$:拿掉最後乙個 .  及其左邊的字串:txt

$:拿掉最後條 / 及其右邊的字串:/dir1/dir2/dir3

$:拿掉第一條 / 及其右邊的字串:(空值)

$:拿掉最後乙個 .  及其右邊的字串:/dir1/dir2/dir3/my.file

$:拿掉第乙個 .  及其右邊的字串:/dir1/dir2/dir3/my

記憶的方法為:

# 是去掉左邊(在鑑盤上 # 在 $ 之左邊)

% 是去掉右邊(在鑑盤上 % 在 $ 之右邊)

單一符號是最小匹配﹔兩個符號是最大匹配。

得到長度

[copy to clipboard]

[ - ]

code:

%x="abcd"

#方法一

%expr length $x

4# 方法二

%echo $

4# 方法三

%expr "$x" : ".*"

4# expr 的幫助

# string : regexp   anchored pattern match of regexp in string

查詢子串

[copy to clipboard]

[ - ]

code:

%expr index  $x "b"

2%expr index  $x "a"

1%expr index  $x "b"

2%expr index  $x "c"

3%expr index  $x "d"

4

得到子字串

[copy to clipboard]

[ - ]

code:

# 方法一

# expr startpos length

%expr substr "$x" 1 3

abc%expr substr "$x" 1 5

abcd

%expr substr "$x" 2 5

bcd# 方法二

# $%echo $

bcd%echo $

cd%echo $

abcd

%echo $

ab%pos=1

%len=2

%echo $

bc

匹配正規表示式

[copy to clipboard]

[ - ]

code:

# 列印匹配長度

%expr match $x "."

1%expr match $x "abc"

3%expr match $x "bc"

0

字串的掐頭去尾

[copy to clipboard]

[ - ]

code:

%x=aabbaarealwwvvww

%echo "$"

aabbaarealwwvv

%echo "$"

aabbaareal

%echo "$"

lwwvvww

%echo "$"

bbaarealwwvvww

其中 , # 表示掐頭, 因為鍵盤上 # 在 $ 的左面。

其中 , % 表示%,  因為鍵盤上 % 在 $ 的右面。

單個的表示最小匹配,雙個表示最大匹配。

也就是說,當匹配的有多種方案的時候,選擇匹配的最大長度還是最小長度。

字串的替換

[copy to clipboard]

[ - ]

code:

%x=abcdabcd

%echo $ # 只替換乙個

bbcdabcd

%echo $ # 替換所有

bbcdbbcd

不可以使用 regexp , 只能用 * ? 的檔案擴充套件方式。

shell字串操作

1,字串剪裁 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 my.file.txt 拿掉第乙個 及其左邊的字串 file.txt 拿掉最...

shell 字串操作

字串長度 expr length string expr string 從字串開始的位置匹配子串的長度 expr match string substring substring 是乙個正規表示式 expr string substring substring 是乙個正規表示式 索引expr ind...

shell字串操作

linux shell 字串操作 長度,查詢,替換 詳解 在做shell批處理程式時候,經常會涉及到字串相關操作。有很多命令語句,如 awk,sed都可以做字串各種操作。其實shell內建一系列操作符號,可以達到類似效果,大家知道,使用內部操作符會省略啟動外部程式等時間,因此速度會非常的快。一 判斷...