每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。
分类: LINUX
2011-05-27 15:29:39
1)
$ cat a
Name Age Number
zhang 20 001
li 22 002
wang 19 003
$ cat b
Age Name Number
21 ma 004
22 liu 005
20 li 006
$ cat c
Number Age Name
007 23 zou
008 20 xie
009 20 wan
有三个文件,彩色部分是每列的标签。每个文件的标签顺序不一样,要求每列根据固定的标签顺序合并文件得到下面的结果:
Name Age Number
zhang 20 001
li 22 002
wang 19 003
ma 21 004
liu 22 005
li 20 006
zou 23 007
xie 20 008
wan 20 009
[解析]
一开始我也对这个文本每列的按序输出伤了点脑筋。首先在 BEGIN 中打印出标签,把每个文件的第一行,也就是每个文件的标签行,用for循环依次对第一行的标签为下标,存进数组a里,并且给每个下标的数组赋值。从第2行开始打印对应好的数组下标的值,那就是$1,$2,$3... 在这个时候就按照下标对列进行了按序输出。
2)
cat file
A B C D 1 2 3 4 1 2 3 4 1 2 3 4 要取出B列和C列,关键问题是B列和C列出现的列的位置不固定。
[解析]
先把第一行所有的内容存入数组a,并对应其所在的字段数,然后第二行开始按照下标是B和C的数组对应的字段数打印出该域。