【shell】判断一个字符串是否在文本中

1. 方法一:[[ "${array[@]}" =~ "字符串" ]]

names="This is a computer , I am playing games in the computer"
if [[ "${names[@]}" =~ "playing" ]]; then
 echo 'string exist'
fi

 

2. 方法二,转换为数组

#!/bin/bash
a="hello,world,nice,to,meet,you"
#要将$a分割开,先存储旧的分隔符
OLD_IFS="$IFS"

#设置分隔符
IFS="," 

#如下会自动分隔
arr=($a)

#恢复原来的分隔符
IFS="$OLD_IFS"

#遍历数组
for s in ${arr[@]}
do
  echo "$s"
done

介绍:

变量$IFS存储着分隔符,这里我们将其设为逗号 "," OLD_IFS用于备份默认的分隔符,使用完后将之恢复默认。
arr=($a)用于将字符串$a按IFS分隔符分割到数组$arr
${arr[0]} ${arr[1]} ... 分别存储分割后的数组第1 2 ... 项
${arr[@]}存储整个数组。
${!arr[@]}存储整个索引值:1 2 3 4 ...
${#arr[@]} 获取数组的长度。

 

参考链接:

https://www.jb51.net/article/197827.htm

posted @ 2022-03-31 15:56  代码诠释的世界  阅读(706)  评论(0编辑  收藏  举报