閱讀原文:https://www.jb51.net/article/121290.htm
這篇文章主要給大家總結分享了關於Shell獲取字符串長度的多種方法,包括了利用${#str}、利用awk的length方法、利用awk的NF項、利用wc的-L參數、利用expr的length方法以及利用expr的$str : ".*"技巧來實現方法示例,需要的朋友可以參考下。
前言
在日常工作中,對於求字符串操作在shell腳本中很常用,實現的方法有很多種,下面就來給大家歸納、匯總了求字符串的幾種可能方法,話不多說了,來一起看看詳細的介紹吧。
方法如下:
【方法一】:利用${#str}來獲取字符串的長度
str="ABCDEF"
echo ${#str}
【方法二】:利用awk的length方法
str="ABCDEF"
echo ${str}|awk '{print length($0)}'
備注:
1) 最好用{}來放置變量
2) 也可以用length($0)來統計文件中每行的長度
awk '{print length($0)}' /etc/passwd
awk '{print length($NF)}' /etc/passwd #計算最后一個字段的長度
【方法三】:利用awk的NF項來獲取字符串長度
str="ABCDEF"
echo ${str}|awk -F"" '{print NF}'
備注: -F為分隔符,NF為域的個數,即單行字符串的長度
【方法四】:利用wc的-L參數來獲取字符串的長度
str="ABCDEF"
echo ${str}|wc -L
cat /etc/passwd |wc -L # 輸出:82
備注: -L參數
1) 對多行文件來說,表示打印最長行的長度!82,表示/etc/passwd文件最長行的長度為82。
2) 對單行字符串而言,表示當前行字符串的長度!
【方法五】:利用wc的-l參數,結合echo -n參數
str="ABCDEF"
echo -n ${str}|wc -c
echo ${str} |wc -c
備注:
1) -c參數: 統計字符的個數
2) -n參數: 去除"\n"換行符,不去除的話,默認帶換行符,字符個數就成了7
【方法六】:利用expr的length方法
str="ABCDEF"
expr length ${str}
【方法七】:利用expr的$str : ".*"技巧,變量帶不帶花括號無差別
str="ABCDEF"
expr ${str} : ".*"
備注: .*代表任意字符,即用任意字符來匹配字符串,結果是匹配到6個,即字符串的長度為6