当前位置: 技术问答>linux和unix
在shell中如何分割字符串呢?
来源: 互联网 发布时间:2015-10-01
本文导语: 在shell中如何分割字符串呢? 如aaa,bbb,ccc 如何分割,分割后的结果如何用变量表示呢? | 你可以这样 var=`echo "aaa,bbb,ccc" | awk -F',' '{print $0}' | sed "s/,/ /g"` 这样得出var的值是:aaa bbb ccc echo $v...
在shell中如何分割字符串呢?
如aaa,bbb,ccc
如何分割,分割后的结果如何用变量表示呢?
如aaa,bbb,ccc
如何分割,分割后的结果如何用变量表示呢?
|
你可以这样
var=`echo "aaa,bbb,ccc" | awk -F',' '{print $0}' | sed "s/,/ /g"`
这样得出var的值是:aaa bbb ccc
echo $var 可以得到 aaa bbb ccc
如果你想把var的各个值赋给变量的话,比如你想赋给list,你可以用for循环来做
for list in $var
do
……
done
这样每一次循环里面,list的值分别为var里面的各个值了。
var=`echo "aaa,bbb,ccc" | awk -F',' '{print $0}' | sed "s/,/ /g"`
这样得出var的值是:aaa bbb ccc
echo $var 可以得到 aaa bbb ccc
如果你想把var的各个值赋给变量的话,比如你想赋给list,你可以用for循环来做
for list in $var
do
……
done
这样每一次循环里面,list的值分别为var里面的各个值了。
|
$ ls -l
total 32
drwxr-sr-x 2 message sms 512 Jun 01 12:58 bossfile
drwxr-sr-x 2 message sms 512 Jun 01 13:12 difffile
drwxr-sr-x 2 message sms 512 Jun 01 12:56 localfile
-rwxr-x--x 1 message sms 265 Jun 01 14:01 runpatch
$ ls cd localfile
localfile:
change.20050530.fsr change.20050531.fsr change.20050601.fsr
#!/bin/sh
# copy bossfile into localfile and named by TODAY
cp bossfile/change.fsr localfile/change.`date +%Y%m%d`.fsr
for i in localfile/*
do
var=`echo $i|awk -F '.' '{print $2}' `
diff -f $i bossfile/change.fsr > difffile/$var.patch
done;
echo RUN FINISHED
$ ls cd difffile
difffile:
20050531.patch 20050530.patch 20050601.patch
total 32
drwxr-sr-x 2 message sms 512 Jun 01 12:58 bossfile
drwxr-sr-x 2 message sms 512 Jun 01 13:12 difffile
drwxr-sr-x 2 message sms 512 Jun 01 12:56 localfile
-rwxr-x--x 1 message sms 265 Jun 01 14:01 runpatch
$ ls cd localfile
localfile:
change.20050530.fsr change.20050531.fsr change.20050601.fsr
#!/bin/sh
# copy bossfile into localfile and named by TODAY
cp bossfile/change.fsr localfile/change.`date +%Y%m%d`.fsr
for i in localfile/*
do
var=`echo $i|awk -F '.' '{print $2}' `
diff -f $i bossfile/change.fsr > difffile/$var.patch
done;
echo RUN FINISHED
$ ls cd difffile
difffile:
20050531.patch 20050530.patch 20050601.patch
|
可以用awk,比如你想用逗号‘,’来分隔字符串的话,
然后把第二个域的值赋给变量,可以这样试试,
var=`awk -F',' '{print $2}' "aaa,bbb,ccc"`
然后把第二个域的值赋给变量,可以这样试试,
var=`awk -F',' '{print $2}' "aaa,bbb,ccc"`
|
var=`echo "aaa,bbb,ccc"|awk -F ',' '{print $2}' `
echo $var
就可以了啊,注意上面的单引号,双引号,以及符号`