awk는 마지막 열을 새 줄에 넣습니다.

awk는 마지막 열을 새 줄에 넣습니다.

나는 이것을 가지고있다

    -77.199997 23.6343749630 39.9989584580 
    -80.000000 23.6364583430 39.9989584580
    -81.599998 23.6385417220 39.9989584580

열 2, 열 3, 열 1(위도, 경도, 고도)을 읽도록 열 순서를 변경하고 싶습니다.

나는 이전에 awk를 여러 번 사용했지만 어떤 이유로 열을 다시 정렬할 때 결과는 추가 공백이 있는 다음과 같습니다.

     32.1614584410 43.3385414490
     -2019.400024 
     32.1635418210 43.3385414490
     -2016.800049 
     32.1656252000 43.3385414490
     -2018.500000 

더 많은 것이 있는데 왜 이 작업이 수행되었는지 누군가 말해 줄 수 있습니까? 아니면 제가 뭔가를 놓치고 있는 것입니까?

    awk -F" " '{print " "$2" "$3" "$1" "}' infile.xyz > outfile.xyz
    awk '{print $2 $3 $1}' infile.xyz > outfile.xyz
    awk -F" " '{print ""$2" "$3" "$1""}' infile.xyz > outfile.xyz

답변1

모든 infiles에 대해 dos2unix를 실행해야 했고 그 이후에는 모든 것이 잘 작동했습니다.

답변2

먼저, 사용하고 있는지 확인하세요.공간설마입력 파일에.

그런 다음 다음과 같이 변수를 쉼표로 구분해 보세요.

awk '{print $2,$3,$1}' infile.xyz > output.xyz

에서와 같이 변수를 나란히 배치하면 $2 $3 $1연결 awk됩니다.

printf또한 이 기능은 더 나은 형식 지정 기능을 제공하므로 시도해 볼 수도 있습니다 .

관련 정보