- 论坛徽章:
- 1
|
回复 1# dahaoshanhe - [winway@winway test]$ cat awkscr
- NR == FNR {
- for (i=5; i<=NF; i+=2) {
- line[FNR FS $3 FS $i] = $i FS $(i+1)
- }
- linecnt = FNR;
- next;
- }
- NR > FNR {
- for (i=1; i<=linecnt; i++) {
- for (j in line) {
- if (j ~ i FS $3) {
- split(line[j], a, FS);
- for (k=5; k<=NF; k+=2) {
- if ($k == a[1]) {
- $(k+1) = a[2];
- break;
- }
- }
- delete line[j];
- find = 1;
- }
- }
- if (find == 1) {
- find = 0;
- break;
- }
- }
- print $0;
- }
- [winway@winway test]$ awk -f awkscr file2 file1
- SP 2012 421 1 80 x 120 y 160 c
- SP 2012 421 4 80 h 120 p 160 h 560 d 580 e 600
- SP 2012 234 18 40 d 80 z 120 m 160 d
复制代码 |
|