AWK는 새 열을 추가하지 않습니다.

AWK는 새 열을 추가하지 않습니다.

내 파일에는 4개의 숫자 열이 있습니다. 아래에서는 열이 올바르게 식별되었는지 테스트합니다. tail -n +2제목을 삭제하는 것입니다.

tail -n +2 file.txt | awk '{print $1,$2,$3,$4}' | head

41261311 41261568 2798880 2799128
-115939711 -115940021 2799541 2799827
-115939159 -115939706 2800137 2800685
-115939033 -115939106 2801113 2801186
-115938419 -115938978 2801191 2801726
-115937404 -115937535 2812511 2812642
-115937075 -115937323 2813756 2814011
-115910025 -115910146 2818095 2818198
-115909932 -115909986 2818205 2818262
-115909723 -115909789 2818703 2818768

col4에서 col3을 뺀 다섯 번째 열을 추가하고 싶습니다.

tail -n +2 file.txt | awk '{print $1,$2,$3,$4,$4-$3}' | head

 2481311 41261568 2798880 2799128
 286939711 -115940021 2799541 2799827
 548939159 -115939706 2800137 2800685
 735939033 -115939106 2801113 2801186
 535938419 -115938978 2801191 2801726
 131937404 -115937535 2812511 2812642
 255937075 -115937323 2813756 2814011
 103910025 -115910146 2818095 2818198
 575909932 -115909986 2818205 2818262
 655909723 -115909789 2818703 2818768

다섯 번째 열을 추가하는 대신 첫 번째 열에서 이상한 작업이 수행됩니다.

답변1

파일은 ( CR LFUnix)가 아닌 (Windows)로 끝납니다 LF.
CR역할은 행을 처음으로 이동한 다음 새로 계산된 열의 값이 첫 번째 열에 인쇄됩니다.

dos2unix필터 파일을 사용 하거나 tr -d '\r'간단히 다음을 사용하십시오.

awk 'NR>2 { gsub(/\r/,""); print $1,$2,$3,$4,$4-$3 } NR>12{exit}' file

NR>12{exit}전체 파일을 처리하려면 마지막 항목을 제거하세요 .

관련 정보