温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Shell字符串相关操作方法是什么

发布时间:2021-12-17 16:09:06 来源:亿速云 阅读:185 作者:iii 栏目:大数据

本篇内容介绍了“Shell字符串相关操作方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

  • Shell中针对字符串的操作有很多。结合代码示例会比较容易理解

  • 通过单引号拼接字符串

################### 使用单引号拼接字符串 ################### name1='white' str1='hello, '${name1}'' str2='hello, ${name1}' echo ${str1}_${str2} # Output: # hello, white_hello, ${name1} name3='green' str5='hello,'${name3}'' str6='hello, ${name3}' echo ${str5}_${str6}

运行结果如下:

hello, white_hello, ${name1} hello,green_hello, ${name3}
  • 通过双引号拼接字符串

################### 使用双引号拼接字符串 ################### name2="black" str3="hello, "${name2}"" str4="hello, ${name2}" echo ${str3}_${str4} # Output: # hello, black_hello, black name4='pink' str7="hello, "${name4}"" str8="hello, ${name4}" echo ${str7}_${str8}

运行结果如下:

hello, black_hello, black hello, pink_hello, pink
  • 获取字符串长度信息

################### 获取字符串长度 ################### text="12345" echo "${text} length is: ${#text}" # Output: # 12345 length is: 5 text1="qwert" echo "${text1} length is: ${#text1}" # 获取子字符串 text="12345" echo ${text:2:2} # Output: # 34 text="asdfghjkl" echo ${text:3:4} #fghj

运行结果如下:

12345 length is: 5 qwert length is: 5 34 fghj
  • 查找字符串中对应的子串的索引,索引值从1开始计数。

################### 查找子字符串对应的索引 ################### text="hello" echo `expr index "${text}" ll` # Output: # 3 # 索引从 1 开始记录 string_test="linux world" echo `expr index "${string_test}" w` # 7

运行结果如下:

3 7
  • 逻辑判断字符串中是否包含子字符串

################### 判断字符串中是否包含子字符串 ################### str="new_feature/" result=$(echo "${str}" | grep "feature/") if [[ "$result" != "" ]]; then         echo "feature/ 是 ${str} 的子字符串" else         echo "feature/ 不是 ${str} 的子字符串" fi

运行结果如下:

feature/ 是 new_feature/ 的子字符串
  • shell获取字符串特定模式匹配右边的内容

################### 截取关键字右边内容 ################### full_branch="feature/1.0.0" branch=`echo ${full_branch#feature/}` echo "branch is ${branch}" full_name="aaa_bbb" right_half=`echo ${full_name#aaa_}` echo "right half of ${full_name} is ${right_half}"

运行结果如下:

branch is 1.0.0 right half of aaa_bbb is bbb
  • shell获取字符串特定模式匹配左边的内容

################### 截取关键字左边内容 ################### full_version="0.0.1-SNAPSHOT" version=`echo ${full_version%-SNAPSHOT}` echo "version is ${version}" full_address="california-kk" left_address=`echo ${full_address%-kk}` echo "left_address is ${left_address}"

运行结果如下:

version is 0.0.1 left_address is california
  • 将字符串分割成数组

################### 字符串分割成数组 ################### str="0.0.0.1" OLD_IFS="$IFS" IFS="." array=( ${str} ) IFS="$OLD_IFS" size=${#array[*]} lastIndex=`expr ${size} - 1` echo "数组长度:${size}" echo "最后一个数组元素:${array[${lastIndex}]}" for item in ${array[@]} do         echo "$item" done ip_address="192.168.1.1" OLD_IFS="$IFS" IFS="." array=( ${ip_address} ) IFS="$OLD_IFS" ip_size=${#array[*]} lastIndex=`expr ${ip_size} - 1` firstIndex=`expr ${ip_size} - 4` echo "IP地址对应的数组长度:${ip_size}" echo "IP地址的第一段对应是:${array[${firstIndex}]}" for element in ${array[@]} do         echo ${element} done

运行结果如下:

数组长度:4 最后一个数组元素:1 0 0 0 1 IP地址对应的数组长度:4 IP地址的第一段对应是:192 192 168 1 1
  • 逻辑判断字符串是否为空

################### 判断字符串是否为空 ################### #-n 判断长度是否非零 #-z 判断长度是否为零 str=testing str2='' if [[ -n "$str" ]] then         echo "The string $str is not empty" else         echo "The string $str is empty" fi if [[ -n "$str2" ]] then         echo "The string $str2 is not empty" else         echo "The string $str2 is empty" fi if [[ -z $str2 ]] then         echo "==The string $str2 is empty==" else         echo "The string $str2 is not empty" fi #       Output: #       The string testing is not empty #       The string  is empty

运行结果如下:

The string testing is not empty The string  is empty ==The string  is empty==
  • 字符串比较逻辑

################### 字符串比较 ################### str=hello str2=world if [[ $str = "hello" ]]; then         echo "str equals hello" else         echo "str not equals hello" fi if [[ $str2 = "hello" ]]; then         echo "str2 equals hello" else         echo "str2 not equals hello" fi str3=linux if [[ $str3 = "linux" ]];then         echo "str3 equals linux" else         echo "str3 not equal linux" fi

运行结果如下:

str equals hello str2 not equals hello str3 equals linux

“Shell字符串相关操作方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI