一个简单的awk脚本在Linux和我自己的HPUX 11.31平台上运行良好,但它在其他HPUX 11.31系统中不起作用。我无法访问有问题的HPUX系统,因此我暂时无法测试。
@输入数据
mystring my.linuxsrc Running 16840
yourstring your.linuxsrc Running 41794
@ myawk.awk
/mystring / { printf "%s#%s#%s#%s",$1,$2,FIRST,$3; printf "\n"; flag="YES"}
@在其他HPUX系统中出错
syntax error The source line is 1
The error context is
<<< >>>
awk: Quitting
The source line is 1.
其他HPUX系统中的awk版本:
other_HPUX] what /usr/bin/awk
/usr/bin/awk:
main.c $Date: 2009/02/17 15:25:17 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
run.c $Date: 2009/02/17 15:25:20 $Revision: r11.31/1 PATCH_11.31 (PHCO_36132)
$Revision: @(#) awk R11.31_BL2010_0503_1 PATCH_11.31 PHCO_40052
我的HPUX系统:
my_HPUX] what /usr/bin/awk
/usr/bin/awk:
main.c $Date: 2008/05/19 14:40:42 $Revision: r11.23/3 PATCH_11.23 (PHCO_38267)
lib.c $Date: 2007/02/23 16:15:06 $Revision: r11.23/2 PATCH_11.23 (PHCO_36053)
run.c $Date: 2008/05/19 14:40:53 $Revision: r11.23/1 PATCH_11.23 (PHCO_38267)
$Revision: @(#) awk R11.23_BL2008_0602_1 PATCH_11.23 PHCO_38267
你能让我知道为什么简单的awk在其他HPUX系统中失败了吗?
@ Resolution
Awk脚本包含Unix上的CRLF框,因此使用该文件时出现问题。删除CR后,它可以正常工作。
答案 0 :(得分:0)
请问您可以尝试一下,虽然我没有HP OS,但我也想帮助您。
awk '/mystring / { printf("%s#%s#%s#%s",$1,$2,FIRST,$3); print ORS}' Input_file
OR
awk '/mystring / { printf("%s#%s#%s#%s\n",$1,$2,FIRST,$3)}' Input_file
Ed Morton只是正确的,有一个未使用的变量,我在上面的代码中删除了它,让我告诉我它是怎么回事。