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

linux shell编程之利用环境变量IFS自定义分隔符

2017-01-20 21:38 423 查看
默认情况下,bash shell将空格符、制表符、换行符看作是字段分隔符,如果遇到这些字符,bash shell就会认为字符后是一个新的字段,这就带来一种困扰:如果我们想处理包含空格、制表符、换行符的字符就会有麻烦了。bash提供了一种自定义分隔符的机制:环境变量IFS定义了当前的分隔符,我们可以通过改变环境变量IFS的值,改变分隔符。

$ cat test.txt
apple pear banana orange
$ cat test.sh
#!/bin/bash
ifs_old=$IFS
IFS=$'\n'
for val in `cat test.txt`
do
echo "n=$val"
done
IFS=$ifs_old
$ ./test.sh
n=apple pear banana orange
本例中将分隔符定义为'\n',这样再遇到空格,也不会分隔字段。
$ cat test.sh
#!/bin/bash
list="we:are:champion"
ifs_old=$IFS
IFS=$':'
for val in $list
do
echo "n=$val"
done
IFS=$ifs_old
$ ./test.sh
n=we
n=are
n=champion
在本例中,将分隔符定义为':',注意我们每次设置IFS前,保存一下IFS,用完之后,最好恢复原来的值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: