Shell中獲取字串長度方法總結

2021-08-14 05:02:30 字數 1337 閱讀 8950

求字串操作在shell指令碼中很常用,下面歸納、彙總了求字串的幾種可能方法:

【方法一】:利用$來獲取字串的長度

[mkx@localhost testdir]$ stringz=abcabc123abcabc

[mkx@localhost testdir]$ echo $

15

【方法二】:利用awk的length方法

[mkx@localhost testdir]$ echo $ | awk ''

15

備註:

1) 最好用{}來放置變數

2) 也可以用length($0)來統計檔案中每行的長度

[mkx@localhost testdir]$ awk '' /etc/passwd

3132

3936

【方法三】:利用awk的nf項來獲取字串長度

[mkx@localhost testdir]$ echo $stringz | awk -f "" ''

15備註: -f為分隔符,nf為域的個數,即單行字串的長度

【方法四】:利用wc的-l引數來獲取字串的長度

[mkx@localhost testdir]$ echo $ | wc -l

15[mkx@localhost testdir]$ cat /etc/passwd |wc -l

99

備註: -l引數

1) 對多行檔案來說,表示列印最長行的長度! 99,表示/etc/passwd檔案最長行的長度為99

2) 對單行字串而言,表示當前行字串的長度!

【方法五】:利用wc的-l引數,結合echo -n引數

[mkx@localhost testdir]$ echo -n "abcdef" | wc -c

6

備註:

1) -c引數: 統計字元的個數

2) -n引數: 去除」\n」換行符,不去除的話,預設帶換行符,字元個數就成了7

【方法六】:利用expr的length方法

[mkx@localhost testdir]$ expr length $

15

【方法七】:利用expr的$str : 「.*」技巧

[mkx@localhost testdir]$ expr $stringz : ".*"

15

備註: .*代表任意字元,即用任意字元來匹配字串,結果是匹配到15個,即字串的長度為15

shell獲取字串長度

方法1 使用wc l命令 wc l可以獲取到當前行的長度,因此對於單獨行的字串可以用這個簡單的方法獲取,另外wc l則是獲取當前字串內容的行數。如下 echo abc wc l 方法2 expr length string 使用expr length可以獲取string的長度 方法3 awk獲取域的...

Lua中獲取字串長度

偶然的情況下,需要用lua 獲取字串的長度,結果發現結果和自己想象的不一樣,乙個漢字算兩個英文本元的時代已經快過去了,乙個中文字元列印出來的長度為3,引起了我的好奇,查詢資料了解了具體原因 不同的編碼格式佔位元組數是不同的,utf 8編碼下乙個中文所佔位元組也是不確定的,通常是3個字元,可能是2個 ...

Oracle獲取字串長度

oracle中常用的字串長度獲取方法,有兩個 lengthb string 和length string b是byte位元組的意思 其中 lengthb string 計算string所佔的位元組長度 返回字串的長度,單位是位元組 length string 計算string所佔的字元長度 返回字串...