Linux shell脚本中的剪切和导出命令

Linux shell脚本中的剪切和导出命令,linux,shell,unix,Linux,Shell,Unix,我正在编写一个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$$

我正在编写一个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

让我展示一下我的主要剧本

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
awk'BEGIN{OFS=”“}{if(substr($0,12,2)=“60”和&substr($0151,1)=“-”)\
{打印substr($0,1,11),“78”,substr($0,14)}\
否则\
{打印$0}\
}'>/tmp/checks$$.1
#确定非标题记录的计数
rec_cnt=`wc-l/tmp/checks$$.1`
rec_cnt=`expr“$rec_cnt-1”`
出口记录
#确定60条记录的总和
awk'{if(substr($0,12,2)=“60”| | substr($0,12,2)=“78”)\
打印$0}'/tmp/checks$$.2
rec_sum=`cut-c 151-160/tmp/checks$$.2 |/u/fourgen/cashnet/bin/sumit`
出口收入总额
#制作一个新的标题记录并输出它
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”
#输出按传输代码排序的所有其他内容
grep-v“%tmp/checks$$.1 | cut-c1-150 | sort-k1.12,13”

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

编辑:
如果提交脚本中只有这些内容,那么它只需将传递给它的字符串(看起来必须是一个数字)添加到某个总值,并打印传递给它的数字。看起来该脚本中必须有更多的代码,否则这将有点过于复杂

比什么好?你看过手册了吗?例如
mancut
?我不是linux用户,我不知道什么是手册页!我也没有执行这些脚本。我只是在PHP.Google中为“mancut”重写它,或者在shellYa中键入它,我得到了文档。让我参考一下。感谢MatteoI在获得此参考资料之前在谷歌上搜索;但是我没有找到这个人请看我的主要剧本prep_chkI我想我已经给了你相当多的帮助来解释“你的”剧本的各个部分。如果我是你,我会在网上找到关于awk的教程。它看起来非常复杂和棘手,但一旦你掌握了窍门,它就会非常强大。此外,你总是有写得很好的手册页,还有谷歌。如果您被卡住,请在终端中使用脚本中的单个命令。
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