红联Linux门户
Linux帮助

Shell中字符串分割的三种方法

发布时间:2016-07-30 14:57:44来源:linux网站作者:CHEN_JP
问题:对于’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:
Shell中字符串分割的三种方法
#!/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
这种方法不需要知道分隔后的字符串的个数,具有更好的通用性。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22855.html