awk - 不同电脑中的不同错误

时间:2017-03-19 09:42:33

标签: bash awk runtime-error gawk

我已经在 bash / gawk 中编写了一个小程序,我打算在 mobaxterm 上本地运行。我的问题是,虽然它在一台PC上完美运行,但当我在另一台PC上试用时,它始终给我一个错误127。

#!/usr/bin/gawk -f

# Note: strings' 1st character is at column 1.

# Before first line.
BEGIN {
   print "" >> JOB_OUT
   print "GAwk Started" >> JOB_OUT

   # Variables Init.
   line_crnt= ""
   line_writ= ""
   #
   load_indx= ""
   srch_indx= ""
   #
   line_cnt_fltr= 0
   line_cnt_base= 0
   line_cnt_comn= 0
   line_cnt_diff= 0

   # We will use array:
   # tbl_filter
}

# For each line of input.

# 1st File (filter).
# Load filter to table.
FNR==NR {
   line_cnt_fltr+= 1
   line_crnt= $0

   load_indx= substr(line_crnt, p_fltr_srt, p_fltr_len)
   # load_indx=line_crnt
   tbl_filter[load_indx]+=1

   next
  }

 # 2nd File (base).
 # Read base, check filter, write output.
{ 
   line_cnt_base+= 1
   line_crnt= $0

   srch_indx= substr(line_crnt, p_base_srt, p_base_len)
   line_writ= line_crnt

   if (srch_indx in tbl_filter)
   {
      print line_writ >> FILE_OT_COMN
      line_cnt_comn+= 1
   }
   else
   {
      print line_writ >> FILE_OT_DIFF
      line_cnt_diff+= 1
   }
}

# After last line.
END {
   print "" >> JOB_OUT
   print "Read : line_cnt_fltr = @" line_cnt_fltr "@" >> JOB_OUT
   print "Read : line_cnt_base = @" line_cnt_base "@" >> JOB_OUT
   print "Same : line_cnt_comn = @" line_cnt_comn "@" >> JOB_OUT
   print "Diff : line_cnt_diff = @" line_cnt_diff "@" >> JOB_OUT
   print "" >> JOB_OUT
   print "GAwk Ended" >> JOB_OUT
}

我实际上没有收到任何错误消息,但退出状态为127,这恰好发生在我的bash脚本调用gawk脚本时。

在两台电脑中,gawk都在/ bin / gawk。

这是调用它的代码:

$JOB_RUN -b  -v FILE_OT_COMN=$FILE_OT_COMN \
         -v FILE_OT_DIFF=$FILE_OT_DIFF \
         -v JOB_OUT=$JOB_OUT           \
         -v p_fltr_srt=$fltr_srt       \
         -v p_fltr_len=$fltr_len       \
         -v p_base_srt=$base_srt       \
         -v p_base_len=$base_len       \
         $FILE_IN_FLTR  $FILE_IN_BASE  \
         2>$JOB_ERR

如果您通过执行看到所有变量都存在:

./RN_Files_Cmpr.gawk -b -v FILE_OT_COMN=V_20170309.TXT.xstY -v FILE_OT_DIFF=V_20170309.TXT.xstN -v JOB_OUT=RUN.RN_Files_Cmpr.gawk.bsh.outlist -v p_fltr_srt=1 -v p_fltr_len=2 -v p_base_srt=117 -v p_base_len=2 timo.txt V_20170309.TXT

我读到错误127出现时,它找不到一些可执行文件,我相信这个案例必须是gawk,即使它在那里。顺便说一句gawk完美运行:

gawk '{ print substr($0,1,2) }' TESTFILE.txt

给出正确的输出。

有人能指出我做错了什么吗?谢谢

0 个答案:

没有答案