shell中设置IFS,使用自定义分割符

1.概述
在bash中,IFS(Internal Filed Separator,内部域分隔符)是一种 set 变量,当 shell 处理字符串时,shell会根据 IFS 的值,默认是空格、Tab键、换行来解析读入的变量,然后对特殊字符进行处理,最后重新组合赋值给该变量。

2.使用范围
在echo、cat、awk时,IFS会影响对字段的分割
所以在输出某些含有IFS值对应的字段时,会截断输出。又不能达到自己想要的效果时,就需要修改IFS值。如某字段含有空格,而输出打印时,不想截断空格前后字符,做为两个字符,就需要用到重新设置IFS值

3.用法

3.1创建一个test.txt文件,文件内容如下

apple banana pear
watermelon grape

3.2在shell中修改IFS,达到一行一行的输出

#在修改IFS前,保留原IFS
IFS_OLD=$IFS

#设置换行为内部域分隔符
IFS='\n'

for line in `cat test.txt`
do
	echo ${line}
done

#在shell结束前,还原IFS
IFS=$IFS_OLD

exit 0

3.2输出效果:

apple banana pear
watermelon grape
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值