-3

我正在编写一个包含以下代码的 shell 脚本。我不明白这些行,主要是 cut 命令和 export 命令。任何人都可以帮助我...另外请指出我更好的linux命令参考。提前致谢!

# determine sum of 60 records
awk '{ 
    if (substr($0,12,2) == "60" || substr($0,12,2) == "78") \
            print $0 
}'< /tmp/checks$$.1 > /tmp/checks$$.2

rec_sum =`cut -c 151-160 /tmp/checks$$.2 | /u/fourgen/cashnet/bin/sumit`

export rec_sum

在我的 sumit 脚本中,下面是代码

awk '{ total += $1}
END {print total}' $1

让我展示我的主脚本 prep_chk

awk 'BEGIN{OFS=""} {if (substr($0,12,2) == "60" && substr($0,151,1) == "-") \
        { print substr($0,1,11), "78", substr($0,14) } \
    else \
        { print $0 } \
    }' > /tmp/checks$$.1

# determine count of non-header record
rec_cnt=`wc -l /tmp/checks$$.1`
rec_cnt=`expr "$rec_cnt - 1"`
export rec_cnt

# determine sum of 60 records
awk '{ if (substr($0,12,2) == "60" || substr($0,12,2) == "78") \
    print $0 }'< /tmp/checks$$.1 > /tmp/checks$$.2
rec_sum=`cut -c 151-160 /tmp/checks$$.2 | /u/fourgen/cashnet/bin/sumit`
export rec_sum

# make a new header record and output it
head -1 /tmp/checks$$.1 | awk '{ printf("%s%011.11d%05.5d%s\n", \
    substr($0,1,45), rec_sum, rec_cnt, substr($0,62)) }' \
    rec_sum="$rec_sum" rec_cnt="$rec_cnt"

# output everything else sorted by tran code
grep -v "%%%%%%%%%%%" /tmp/checks$$.1 | cut -c 1-150 | sort -k 1.12,13
4

1 回答 1

2

cut -c从文件中的给定位置剪切文本,在本例中为文件中的字符 151 到 160 /tmp/checks$$.2。该字符串通过管道传送到一些名为的代码submit,该代码会产生一些输出。然后将该输出分配给环境变量rec_sum。该export命令使该变量可通过系统使用,例如在另一个 shell 脚本中。

编辑:如果这就是您提交脚本中的全部内容,它只需将您传递的字符串(它似乎必须是一个数字)添加到某个值总计并打印它传递的数字。似乎该脚本中必须有更多代码,否则这样做会有点过于复杂。

于 2013-04-23T10:27:21.593 回答