如何在Bash中查找字符串的长度
时间:2020-03-05 15:31:40 来源:igfitidea点击:
如果我们正在处理bash中的字符串,则可能需要知道字符串的长度。
幸运的是,在bash中获取字符串的长度非常简单。
假设我们有一个名为my_string
的字符串。
其长度可以提取为:
${#my_string}
以下是一个可以更好地说明问题的示例:
Hyman@theitroad:~$my_string="igi" Hyman@theitroad:~$echo "length is ${#my_string}" length is 8
那很容易,不是吗?
我们可以将此字符串长度保存到另一个变量中,并在以后使用:
Hyman@theitroad:~$my_string="igi" Hyman@theitroad:~$length=${#my_string} Hyman@theitroad:~$echo "String length is $length" String length is 8
像Linux中的大多数其他事物一样,这不是计算Bash中字符串长度的唯一方法。
使用expr命令获取bash中的字符串长度
让我们看看其他一些命令,这些命令可以测试bash中的字符串长度。
这些命令之一是expr命令。
它具有几个对字符串选项有用的选项。
其中,length
给我们一个字符串的长度。
Hyman@theitroad:~$expr length "my string" 9
由于expr命令输出长度,因此我们应该使用命令替换将其存储在变量中。
#!/bin/bash str="my string" length=$(expr length "$str") echo "Length of my string is $length"
现在,如果我们运行此bash shell脚本,它将打印长度:
Hyman@theitroad:~$bash string.sh Length of my string is 9
使用awk获取字符串的长度
AWK是超级通用的命令,用于在Linux命令行中编辑文本。
我们也可以使用它来计算字符串长度。
我们必须使用echo命令,然后使用管道重定向将其与awk一起解析:
Hyman@theitroad:~$echo "my string" | awk '{print length}' 9
如我们所见,除非我们熟悉awk命令的基础知识,否则记住语法并不容易。
使用wc命令计算字符串长度
在Linux中获取字符串长度的另一种方法是使用wc命令。
现在,wc命令用于计数文件中的行数,字符。
我们可以回显字符串并将其通过管道传递给wc命令。
-m选项给出字符计数。
Hyman@theitroad:~$echo -n "my string" | wc -m 9
注意echo命令的-n选项吗?
这很重要,因为echo会在末尾自动添加一个新的行字符\ n,它将使字符串的长度增加一。
使用-n
选项,echo命令不会添加换行符。
我们可以使用命令替换将字符串长度存储在变量中,如前面的示例所示。
#!/bin/bash str="my string" length=$(echo -n "my string" | wc -m) echo "Length of my string is $length"
就个人而言,${#string}是获取字符串长度的首选方法。
更容易记住。