2017-07-25 41 views
0

一个简单的awk脚本工作在Linux和我自己的HP-UX 11.31平台很好,但它并没有在其他HPUX 11.31系统工作。我无法访问有问题的HPUX系统,因此我现在无法测试某些内容。限制HP awk的

@输入数据

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. 

AWK的其他HPUX系统版本:

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系统故障?

@

分辨率

awk的脚本包括在Unix盒CRLF,所以使用的文件有问题。删除CR后,它工作正常。

+2

脚本您显示,除非你的AWK是严重破损,这是非常不可能的问题,我们将不会产生错误。假设你的AWK不破,因为'FIRST'是不确定的和'flag'从不使用我想有更多的脚本比你已经证明我们,所以也许是缺少你脚本的一部分是错误所在。 –

+0

感谢您的评论。是的,还有其他部分。让我尝试测试其余的。 – Sigularity

+0

将你的脚本降低到[mcve],你可能会自己找出问题所在。 –

回答

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 

埃德莫顿仅是正确的,有我删除它在上面的代码中未使用的变量,让我如何去即可。

+0

好的。至少我了解到awk脚本甚至可以在HPUX上运行。这就是我问这个问题的原因。让我试着测试你的建议,并且我会用我的其他awk脚本测试更多。我认为它与这个问题无关,因为它与模式字符串不匹配。谢谢。 – Sigularity