问题:对于’1,2,3,4,5’这样的字符串输出采用,分隔开的1 2 3 4 5
特征:在字符串中没有空格
解决方法1:
#!/bin/bash
var=’1,2,3,4,5’
var=${var//,/ } #这里是将var中的,替换为空格
for element in $var
do
echo $element
done若原来字符串中有空格如:’mark:x:0:0:this is a test user:/var/mark:nologin’这样的字符串,要将:分隔的字符串输出,上面的方法会将this is a test user分别输出,这个是不对的。
对于这种情况解决方法2:
#!/bin/bash
user=’mark:x:0:0:this is a test user:/var/mark:nologin’
for((i=1;i<=7;i++))
do
echo $user|cut -d ":" -f$i
done上面这种方法是确定字符串分隔后的长度的,要是写的更通用一点,向下面这样
解决方法3:
#!/bin/bash
user=’mark:x:0:0:this is a test user:/var/mark:nologin’
i=1
while((1==1))
do
split=`echo $user|cut -d ":" -f$i`
if [ "$split" != "" ]
then
((i++))
echo $split
else
break
fi
done这种方法不需要知道分隔后的字符串的个数,具有更好的通用性。
本文详细介绍了在不同场景下如何处理字符串分隔的问题,并提供了三种针对不同需求的解决方案,包括处理不含空格的简单字符串、含有空格的复杂字符串以及长度不确定的分隔情况。
1348

被折叠的 条评论
为什么被折叠?



