解析shell字段分隔符的用法(图文)

发布时间:2020-09-13编辑:脚本学堂
本文介绍下,shell脚本中,有关字段分隔符的用法及几个小例子,帮助大家理解字段分隔符的用法,有需要的朋友参考下。

shell/ target=_blank class=infotextkey>shell脚本编程中,内部字段分隔符(Internal Field Separator,IFS)是一个相当重要的符号。
在处理文本数据时,非常有用。

本节就与大家一起学习下,这个可以把单个数据流划分成不同数据元素的定界符。

内部字段分隔符是用于特定用途的定界符。IFS是存储定界符的linux环境变量。它是当前shell环境使用的默认定界字符串。

下面通过具体的例子,来学习IFS定界符的用法。

假如需要迭代一个字符串或csv(Comma Separtor value,逗号分隔型数值)中的单词。

对于字符串,定界符IFS一般用“.”。而csv文件,定界符IFS一般用”,“。

例1,处理csv数据
 

shell处理csv数据

输出结果,如下图:
 

shell处理csv数据的输出结果

IFS的默认值为空白字符(换行符、制表符或空格)。

当IFS被设置为逗号时,shell将逗号解释成一个定界符,因此变量$item在每次迭代时读取由逗号分隔的字符串作为变量值。

如果没有把IFS设置成”,“,则以上脚本会将$data中的全部数字作为单个字符串打印出来。

再来看个例子,在学习shell编程的日子里,再次体会到例子是学习进步的阶梯,哈哈。

以/etc/passwd为例,看看IFS的另一种用法。

这个例子稍显复杂,用到了head命令以及二层for循环,初学的朋友细细体会吧。

例2:
 

shell IFS

输出结果,如下图:
shell IFS输出结果