shell字符串长度怎么获取?截取方法详解

网安智编 厦门萤点网络科技 2026-04-04 00:13 6 0
shell截取字符串的方法 shell字符串的截取的问题: 一、Linux shell 截取字符变量的前8位,有方法如下: “$a” 1 8 $a|awk ‘{print (,1,8)}’ $a|cut -c1-8 $a : ‘\(.\\...

shell截取字符串的方法

shell字符串的截取的问题:

一、Linux shell 截取字符变量的前8位,有方法如下:

“$a” 1 8

$a|awk ‘{print (,1,8)}’

$a|cut -c1-8

$a : ‘\(.\\).*’

$a|dd bs=1 count=8 2>/dev/null

二、按指定的字符串截取

1、第一种方法:

${##*} 从左向右截取最后一个后的字符串

${#*}从左向右截取第一个后的字符串

${%%*}从右向左截取最后一个后的字符串

${%*}从右向左截取第一个后的字符串

“*”只是一个通配符可以不要

例子:

$ MYVAR=

$ echo ${MYVAR##*fo}

$ echo ${MYVAR#*fo}

2、第二种方法:${:n1:n2}:截取变量从n1到n2之间的字符串。

可以根据特定字符偏移和长度,使用另一种形式的变量扩展,来选择特定子字符串。试着在 bash 中输入以下行:

$ =

$ echo ${:0:3}

cow

$ echo ${:3:7}

这种形式的字符串截断非常简便,只需用冒号分开来指定起始字符和子字符串长度。

三、按照指定要求分割:

比如获取后缀名

ls -al | cut -d “.”-f2

一、构造字符串

直接构造

=hello

="i am a "

='ess'

重复多次

# the first parm($1) by $2 times

()

local x=$2

if ; then

x=0

fi

local =""

while ;

do

=` "%s%s" "$" "$1"`

x=`expr $x - 1`

done

echo $

举例:

=` "$" 3`

echo " = $"

二、赋值与拷贝

直接赋值

与构造字符串一样

=terry

从变量赋值

=$

三、联接

直接联接两个字符串

=` "%s%s" "$" "$"`

Linux shell字符串截取技巧_shell 字符串长度_shell截取字符串方法

使用可以进行更复杂的联接

四、求长

求字符数(char)

=`echo "$" | wc -m`

echo $

求字节数(byte)

=`echo "$" | wc -c`

echo $

求字数(word)

=`echo "$" | wc -w`

echo $

五、比较

相等比较

str1 = str2

不等比较

str1 != str2

举例:

if

"$" = "terry"

; then

echo "I am terry"

fi

小于比较

# 0 if the two is equal, 1 if $1 < $2, else pare() { local x=0 if

"$1" != "$2"

; then x=2 =` "%s\n%s" "$1" "$2"` local TEMP2=`(echo "$1"; echo "$2") |sort` if

"$TEMP" = "$TEMP2"

; then x=1 fi fi echo $x }

六、测试

判空

-z str

判非空

-n str

是否为数字

# 0 if the is nu