能够使用3个全然不同的方法使awk分隔字段。第一个方法是用空白字符来分隔字段。要实现这样的方法,可将FS设置为一个空格。在这样的情况下,记录的前导空白字符和结尾空白字符(空格和/或制表符)将被忽咯。由于FS的默认值为一个空格,所以这也是通常情况下awk将记录划分为字段的方法。
第二个方法是使用其它单个字符来分隔字段。比如。 awk程序常常使用":"作为分隔符来訪问UNIX /etc/passwd文件。当FS 表示不论什么单个字符时,在这个字符出现的不论什么地方都将分隔出另外一个字段。假设出现两个连续的分隔符,在它们之间的字段值为空串。
最后一种方法是,假设你设置了不止一个字符作为字段分隔符,它将被作为一个正則表達式来解释。也就是说,字段分隔符将是"与正則表達式匹配的最左边最长的非空的不重叠的子串"。
("null字符串"是一个技术术语,我们将它定义为"空的字符串" )你能够发现下面各种不同表示之间的差别:
FS = " "
这个命令行将每一个制表符作为一个字段分隔符,而:
FS = " +"
这个命令行表示用一个或多个制表符来分隔字段。使用第一种定义。以下的一行能够分为3个字段:
abc def
參考资料:http://www.linuxawk.com/communication/468.html