linux的shell脚本中如何在一个字符串中查找指定字符串是否存在
2024-08-23
23
摘要
在Linux中写Shell脚本,经常会遇到需要在字符串中查找和判断指定的子字符串是否存在,通配符,正则表达式,grep命令等都是常用的方法,以下整理几种shell脚本查找字符串的方法示例。
利用grep命令
示例代码如下:
strA=long string
strB=string
result=$(echo $strA | grep ${strB})
if [[ $result != ]]
then
echo 包含
else
echo 不包含
fi
先打印长字符串,然后在长字符串中通过grep命令查找要搜索的字符串,用变量result记录搜索的结果,如果结果不为空,说明strA包含strB。如果结果为空,说明不包含。
这个方法充分利用了grep 的特性,最为简洁。
利用shell的字符串运算符
#!/bin/bash
strA=helloworld
strB=low
if [[ $strA =~ $strB ]]
then
echo 包含
else
echo 不包含
fi
利用通配符
用星号通配符(星号)*包围子字符串并将其与字符串进行比较是最简单的方法。
通配符表示零个,一个或多个字符的符号。
如果子字符串包含在字符串中返回true。
在下面的示例中,我们使用if语句和相等运算符(==)来检查字符串 STR 中是否找到子字符串 SUB:
#!/bin/bash
A=helloworld
B=low
if [[ $A == *$B* ]]
then
echo exist
else
echo not exist
fi
执行结果输出:
exist
利用case in 语句
您也可以使用case语句来检查字符串是否包含另一个字符串,而不是使用if语句。
#!/bin/bash
thisString=1 2 3 4 5 # 源字符串
searchString=1 2 # 搜索字符串
case $thisString in
*$searchString*) echo exist ;;
*) echo not exist ;;
esac
执行结果输出:
exist
利用Shell的替换语法
利用shell语法的替换功能搜索:
#!/bin/bash
STRING_A=hello word
STRING_B=llo
if [[ ${STRING_A/${STRING_B}//} == $STRING_A ]]
then
echo N
else
echo Y
fi
使用正则表达式运算符
可以使用正则表达式运算符=~确定指定子字符串是否出现在字符串中。 使用此运算符时,右字符串被视为正则表达式。
周期后跟星号*匹配除了换行符之外的任何字符零次或多次出现。
#!/bin/bash
STR=hello cfnotes 2022.
SUB=cfnotes
if [[ $STR =~ .*$SUB.* ]]; then
echo Im there.
fi
脚本将输出如下内容:
Im there.
其他方法
以下再列举shell中查找字符串的其他几个方法。
#! /bin/bash
var1=hello
var2=he
#方法1
if [ ${var1:0:2} = $var2 ]
then
echo 1:include
fi
#方法2
echo $var1 |grep -q $var2
if [ $? -eq 0 ]
then
echo 2:include
fi
#方法3
echo $var1 |grep -q $var2 echo include || echo not
#方法4
[[ ${var1/$var2/} != $var2 ]] echo include || echo not
更新于:19天前赞一波!3
相关文章
- linux shell的几种截取字符串的方法
- linux的Shell脚本中如何判断某个命令是否存在
- Linux下执行的Shell脚本如何判断当前脚本执行是否有root权限
- C#使用ToString方法数组类型格式化为字符串
- 你如何在 Python 中循环字典?
- PHP 将一个字符串转为数组
- 如何在 Anaconda 中安装 Python 包?
- 你如何在 Python 中编写自动售货机代码?
- 使用 Python 从作为字符串给出的数字中删除前导零
- 如何在 Python 中读取 .data 文件?
- C++中string字符串类型如何快速进行大小写转换
- Python 数据类型详细篇:字符串
- 如何在 Python 中创建静态类数据和静态类方法?
- 用于从字符串中删除最后一个指定字符的 Python 程序
- 用指定字符替换字符串的 Python 程序
- 如何在 Python 中使用 Matplotlib 创建一个空的 Figure?
- 如何在 seaborn 中创建三角相关热图?
- 如何在Python中创建AGE计算器Web App PyWebIO?
- 如何在 Python 中只删除空文件夹?
- 如何在 Pandas 中创建一个空的数据帧并向其附加行和列?
文章评论
全部评论