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
这种方法不需要知道分隔后的字符串的个数,具有更好的通用性。
问题:对于’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
这种方法不需要知道分隔后的字符串的个数,具有更好的通用性。
相关文章推荐
- Shell中字符串分割的三种方法
- Shell中字符串分割的三种方法
- shell判断字符串包含关系的三种方法
- 三种字符串分割方法(C/C++)
- Java字符串分割的三种方法
- 分割字符串的三种方法
- Java 字符串分割三种方法
- java 字符串分割的三种方法(总结)
- shell高效获取分割字符串的方法?
- python的三种字符串格式化方法
- javascript 实现字符串反转的三种方法
- shell截取字符串的方法
- c#中Split等分割字符串的几种方法(转)
- shell截取字符串方法
- c#中分割字符串的几种方法
- shell脚本的8种字符串截取方法
- 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)
- C#中使用split分割字符串的几种方法小结
- 一个字符串中的数值转换为 Interger 的三种方法
- c#中分割字符串的几种方法