您的位置:首页 > 运维架构 > Shell

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

2015-05-13 15:56 232 查看
http://blog.csdn.net/chen_jp/article/details/8922582

问题:对于’1,2,3,4,5’这样的字符串输出采用,分隔开的1 2 3 4 5

特征:在字符串中没有空格

解决方法1:

[plain] view
plaincopy

#!/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:

[plain] view
plaincopy

#!/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:



[plain] view
plaincopy

#!/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

这种方法不需要知道分隔后的字符串的个数,具有更好的通用性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: