shell 使用指定的分割符来分割字符串的方法

一、对于不包含空格的字符串,使用下面方法

方法一

#!/bin/bash
string="hello,shell,haha" 
array=(${string//,/ }) 
for var in ${array[@]}
do
  echo $var
done 

方法二

#!/bin/bash
string="hello,shell,haha"
OLD_IFS="$IFS"
IFS=","
array=($string)
IFS="$OLD_IFS"
for var in ${array[@]}
do
  echo $var
done

方法三:利用tr 指令实现字符替换

#!/bin/bash
string="one,two,three,four,five"
array=(`echo $string | tr ',' ' '` ) 
 
for var in ${array[@]}
do
  echo $var
done

二、对于包含空格的字符串,使用下面方法

#!/bin/bash
str='this is a good question, hello shell, look at me, show your enthusiasm'
i=1
while((1==1))
do
  splitchar=`echo $str|cut -d "," -f$i`
  if [ "$splitchar" != "" ]
  then
      ((i++))
      echo $splitchar
  else
      break
  fi
done

在知道会分成几个部分的前提下,可以通过一下进行分割

#!/bin/bash
str='this is a good question, hello shell, look at me, show your enthusiasm'
for((i=1;i<=4;i++))
do
  echo $str|cut -d "," -f$I
  if [[ $i -eq 1 ]]; then
    query=`echo $line|cut -d ":" -f$i`
  else
    pv_info=`echo $line|cut -d ":" -f$i`
done

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shell是一种脚本语言,经常用于编写脚本程序。在Shell编程中,字符串分割是一个很常用的操作。通常情况下,我们需要根据某个特定的分隔符将一个字符串分割成不同的子字符串,然后对这些子字符串进行处理或者存储。 在Shell中,分割字符串方法很多,可以使用内置的命令,也可以使用各种现成的函数库。其中比较常用的方法包括以下几种: 1. 使用cut命令:cut命令可以根据指定分隔符将一个字符串分割成多个字段,然后选取其中的某些字段进行处理。例如,我们可以使用以下命令将一个以逗号分隔的字符串分割成三个子字符串,并输出第二个子字符串: ``` echo "apple,banana,orange" | cut -d"," -f2 ``` 输出结果为: ``` banana ``` 2. 使用IFS变量:Shell中的IFS变量可以设置用于分割字符串分隔符。我们可以将IFS变量设置为指定分隔符,然后使用for循环将字符串分割成子字符串。例如,以下代码将一个以空格分隔的字符串分割成三个子字符串,并将每个子字符串输出到控制台: ``` str="hello world foo" OLD_IFS=$IFS IFS=" " for val in $str; do echo $val done IFS=$OLD_IFS ``` 输出结果为: ``` hello world foo ``` 3. 使用awk命令:awk命令是一种强大的文本处理工具,也可以用于分割字符串。我们可以使用awk命令将一个字符串分割成多个字段,并对这些字段进行处理。例如,以下命令将一个以逗号分隔的字符串分割成三个子字符串,并输出第二个子字符串: ``` echo "apple,banana,orange" | awk -F"," '{print $2}' ``` 输出结果为: ``` banana ``` 总之,在Shell编程中,分割字符串是一种非常常用的操作,有多种方法可以实现。我们可以根据实际需求选择最合适的方法,并加以应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值