동일한 열의 값을 비교하고 새 열에 직접 출력

동일한 열의 값을 비교하고 새 열에 직접 출력

내 입력 파일은

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

관련 정보