(注:本文中\t一律指明文中一个'\'和一个't',而非一个tab)
背景
2011年4月14日,收到百度上研同学的一个问题:有一个每行都是"abc\t123"这种形式的文件,需求是将文件中每行以"\t"为字段分隔符将改行分为"abc"和"123"两部分并输出,怎么awk实现?
按照传统高级语言的语法,只要把'\'这个字符用另一个'\'转义掉就可以了,即
awk 'BEGIN{FS="\\t"}{print FS,$1,$2}'
然而用该语句处理"abc\t123"时输出却是"\t abc\t123 ",也就是说FS没有想预想那样把两个字段分隔开。