📜  如何在 Bash 脚本中查找字符串的长度?

📅  最后修改于: 2022-05-13 01:57:30.709000             🧑  作者: Mango

如何在 Bash 脚本中查找字符串的长度?

在本文中,我们将了解如何在 Bash 脚本中获取字符串长度。

以下是我们可以在 BASH 中获取字符串长度的几种方法:

  1. 使用 #运算符
  2. 使用 while 循环
  3. 使用 expr 命令
  4. 使用 awk 命令
  5. 使用 wc 命令

使用这些提到的工具和命令,我们将能够在 BASH 脚本中获取字符串变量的长度。

方法一:使用#运算符

#!usr/bin/env bash

str="this is a string"
n=${#str}
echo "Length of the string is : $n "

我们可以使用 #运算符来获取 BASH 中字符串的长度,我们需要将变量名括在“ { } ”中,在其中,我们使用#获取字符串变量的长度。因此,使用 BASH 中的“#”运算符,我们可以得到字符串变量的长度。

方法二:使用while循环

在这个例子中。我们可以使用 while 循环和 read 命令来获取字符串的长度。首先,我们将字符串初始化为您喜欢的任何内容,它可以是用户输入、位置参数等。使用变量非常容易,因此我们为字符串创建一个变量,并将长度“n”初始化为 0 . 然后我们通过使用参数 -n1 逐个字符读取字符来启动 while 循环,即从整个字符串中读取单个字符。

对于变量“str”中的每个字符,即在每次迭代之后,我们将长度“n”加一。在 while 循环中,我们使用 echo 命令和 -n 参数读取字符串“str”,该参数限制字符转义。因此,在循环结束时,我们在变量 n 中获得了字符串的长度,并且可以根据需要进行访问。

#!usr/bin/env bash

str="this is a string"
n=0
while read -n1 character; do
    n=$((n+1)); 
done < <(echo -n "$str")
echo "Length of the string is : $n "

方法三:使用 expr 命令

#!usr/bin/env bash

str="Test String@#$"
n=`expr "$str" : '.*'`
echo "Length of the string is : $n "

在本例中,我们使用 expr 命令在 BASH 中查找字符串的长度。 expr 命令将第一个参数作为字符串变量,然后是运算符“:”,它计算字符串中常见字符的数量,以及在“:”运算符之后提供的下一个字符串。为了计算字符串的长度,我们解析前一个字符串。对于那个“。*”是获取先前提供的令牌的 0 个或多个字符的正则表达式。即使解析字符串而不是“。*”也可以

n=`expr "$str" : "$str"`

这里我们使用了反引号(“ ` ` “),但即使使用$( )也没有使用前者优于后者的优势。两者的目的相同,但$( )嵌套比反引号非常有效。

#!usr/bin/env bash

str="Test String@#$"
n=`expr length "$str"`
echo "Length of the string is : $n "

我们甚至可以使用 expr 命令“length”中的内置函数,该函数在函数之后获取字符串的长度作为参数。顾名思义,length 命令为我们提供了提供的字符串或任何变量的长度。

请记住,对于此代码段之后的每个代码段,您都可以使用$( )代替反引号 ( ` ` )。

n=$(expr length "$str")

方法四:使用 awk 命令

#!usr/bin/env bash

str="this is a string"
n=`echo $str | awk '{print length}'`
echo "Length of the string is : $n "

我们甚至可以使用 awk 命令来获取字符串的长度。我们使用内置 awk 的函数length 以及 print 打印值,从而使用 echo 命令在管道(“ | ”)之后存储字符串的长度。

在表达式中, echo $str | awk '{print length}'我们回显字符串变量“ str ”,然后将其输出重定向(管道)到 awk 命令。在 awk 命令中,我们打印 length函数的输出,该函数获取str变量并将其存储在变量“ n ”中。

方法五:使用 wc 命令

#!usr/bin/env bash

str="this is a string"
n=`echo -n "$str"|wc -c`
echo "Length of the string is : $n "

在这个演示中,我们使用了 wc 命令来获取字符串的长度。在这个命令里面,“ echo -n “$str” | wc -c ” echo 命令有一个参数 -n 不会转义字符。接下来,echo 命令的输出被重定向(管道)到 wc 命令,该命令再次被赋予参数 -c 来计算所提供变量中的字节数,我们甚至可以使用 -m 来精确计算字符数.

echo -n "$str" | wc -m