Shell中字符串分割的三种⽅法
问题:对于’1,2,3,4,5’这样的字符串输出采⽤,分隔开的1 2 3 4 5
特征:在字符串中没有空格
解决⽅法1:
[plain]
1. #!/bin/bash
2. var=’1,2,3,4,5’
3. var=${var//,/ }    #这⾥是将var中的,替换为空格
4. for element in $var
5. do
6.    echo $element
shell 字符串长度
7. done
若原来字符串中有空格如:’mark:x:0:0:this is a test user:/var/mark:nologin’这样的字符串,要将:分隔的字符串输出,上⾯的⽅法会将this is a test user分别输出,这个是不对的。
对于这种情况解决⽅法2:
[plain]
1. #!/bin/bash
2. user=’mark:x:0:0:this is a test user:/var/mark:nologin’
3. for((i=1;i<=7;i++))
4. do
5.        echo $user|cut -d ":" -f$i
6. done
上⾯这种⽅法是确定字符串分隔后的长度的,要是写的更通⽤⼀点,向下⾯这样
解决⽅法3:
[plain]
1. #!/bin/bash
2. user=’mark:x:0:0:this is a test user:/var/mark:nologin’
3. i=1
4. while((1==1))
5. do
6.        split=`echo $user|cut -d ":" -f$i`
7.        if [ "$split" != "" ]
8.        then
9.                ((i++))
10.                echo $split
11.        else
12.                break
13.        fi
14. done
这种⽅法不需要知道分隔后的字符串的个数,具有更好的通⽤性

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。