【求助】awk 字段更换问题

【求助】awk 字段更换问题

想替换一个文本每行第14个字段为第16个字段,试了半天没写出来,请各位援手:confused:      
忘了说还要生成原文本格式,既其他行不变,谢谢      
复制内容到剪贴板
代码:
[color=blue]-(guest@mac:tty1)-(tmp)-
[3800 0] %[/color] cat foo.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 [color=red]*14*[/color] 15 [color=red]*16*[/color] ... ...
[color=blue]-(guest@mac:tty1)-(tmp)-
[3800 0] %[/color] awk '{ $14 = $16; print; }' foo.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 [color=red]*16*[/color] 15 [color=red]*16*[/color] ... ...
[color=blue]-(guest@mac:tty1)-(tmp)-
[3800 0] %[/color]
      
原来可以直接写$14=$16,感谢,看来还得多学习,还有一个疑问,为何print;就可以打印出整行呢?我原来以为print$0,不能够打印生效后的字段呢      
"print;" 等价于 "print $0;"      
嗯,实际中的使用及实现是这样的
BEGIN {FS="|"
                 OFS="|"}
{if ($16==12)
     $14=$16;
     print $0}
满足了我的需求,一个新的问题,能不能直接用命令行的方式完成呢,再次感谢版主      
忘了说,文本是以“|”作为分割符的      
[QUOTE=linjiaxin]嗯,实际中的使用及实现是这样的
BEGIN {FS="|"
                 OFS="|"}
{if ($16==12)
     $14=$16;
     print $0}
满足了我的需求,一个新的问题,能不能直接用命令行的方式完成呢,再次感谢版主[/QUOTE]
不懂您的意思      
我的表达能力差了点:I
我的意思是能不能不用脚本文件,在命令行里直接写,可是还不知道OFS如何处理      
[QUOTE=dearvoid]
复制内容到剪贴板
代码:
[color=blue]-(guest@mac:tty1)-(tmp)-
[3800 0] %[/color] cat foo.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 [color=red]*14*[/color] 15 [color=red]*16*[/color] ... ...
[color=blue]-(guest@mac:tty1)-(tmp)-
[3800 0] %[/color] awk '{ $14 = $16; print; }' foo.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 [color=red]*16*[/color] 15 [color=red]*16*[/color] ... ...
[color=blue]-(guest@mac:tty1)-(tmp)-
[3800 0] %[/color]
[/QUOTE]
这是脚本文件吗?