求字串操作在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所佔的字元長度 返回字串...