2017-07-25 12 views
0

単純なawkスクリプトは、Linuxと私自身のHPUX 11.31プラットフォームで正常に動作しますが、他のHPUX 11.31システムでは動作しません。私は問題のあるHPUXシステムにアクセスできないので、今は何かをテストすることができません。入力データ@HP awkの制限

mystring my.linuxsrc Running 16840 
yourstring your.linuxsrc Running 41794 

他のHP-UXシステムでエラーが発生しました@ myawk.awk

/mystring/{ printf "%s#%s#%s#%s",$1,$2,FIRST,$3; printf "\n"; flag="YES"} 

@

syntax error The source line is 1 
The error context is 
<<<  >>> 
awk: Quitting 
The source line is 1. 

他のHP-UXシステムでの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 

私のHP-UXシステム:

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は、他のHP-UXシステムに障害が発生した理由を私に知らせてくださいことはできますか?

解像度

@ 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