我正在处理一个包含以下代码的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
答案 0 :(得分:2)
cut -c
从文件中的给定位置剪切文本,在本例中为文件/tmp/checks$$.2
中的字符151到160。此字符串通过管道传输到一些名为submit
的代码,该代码会产生一些输出。
然后将该输出分配给环境变量rec_sum
。 export
命令使此变量可用于通过系统,例如在另一个shell脚本中。
编辑: 如果这就是你提交脚本中的所有内容,它只是添加你传递它的字符串,它似乎必须是一个数字,总值并打印它传递的数字。似乎在该脚本中必须有更多的代码,否则它将是一个过于复杂的方式来做它。