我的输入文件为
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343414 11 110005
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843714 11 110006
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343214 11 110007
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843914 11 110009
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945414 11 110010
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343314 11 110013
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945614 11 110015
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0941 29343514 11 110019
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446214 11 110021
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945814 11 110022
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446414 11 110024
我的要求是输出如下
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343414 11 110005 0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843714 11 110006 0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343214 11 110007 0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 2336 29843914 11 110009 1
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945414 11 110010 0
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0940 29343314 11 110013 2
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945614 11 110015 1
DPortal=ECCN RemoteFile=4004_130122 0256 A02 141111 0941 29343514 11 110019 3
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446214 11 110021 1
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 2336 7945814 11 110022 0
DPortal=ECCN RemoteFile=4004_120306 1232 A03 141111 0941 7446414 11 110024 1
即最后一列应打印最后一列的下一行-1 的值,即(n+1) -n -1 =下一列。
答案1
试试这个:
awk 'NR==1{last=$NF-1}{print $0,$NF-last-1; last=$NF}' file
在第一行,我们将变量设置last
为最后一个字段的值减 1 ( $NF-1
),只是为了开始。稍后last
仅获取$NF
前一行的值。