awk 명령을 사용하여 텍스트 파일 형식 지정 [닫기]

awk 명령을 사용하여 텍스트 파일 형식 지정 [닫기]

나는 다음 명령을 사용하고 있습니다 :

awk 'NR>1 {print $1"  "$2}' fort.75 > newfort.75

출력을 다음과 같이 얻습니다.

     7  -2.2964292555E+000
     8 -2.3013363831E+000
     9 -2.3071951989E+000
     10 -2.3136811351E+000
     11 -2.3207311925E+000

하지만 필수 o/p는 다음과 같습니다.

      7 -2.2964292555E+000
      8 -2.3013363831E+000
      9 -2.3071951989E+000
     10 -2.3136811351E+000
     11 -2.3207311925E+000

첫 번째 필드의 값은 모두 동일한 너비가 되도록 형식을 지정해야 합니다. 또한 두 번째 필드는 각 행의 동일한 열에서 시작해야 합니다.

답변1

아마도 출력을 열 단위로 원한다는 뜻일 것입니다(귀하의 예에서는 데이터도 다르지만). 그렇다면 다음을 시도해 보십시오.

awk 'NR>1 {print $1 "\t" $2}' fort.75 > newfort.75

그러면 출력이 탭으로 구분됩니다 \t.

printf또 다른 가능성은 Archemar가 제안한 대로 사용하는 것입니다.

awk 'NR>1 {printf("%4i %f\n",$1,$2);}' fort.75 > newfort.75

첫 번째 열의 형식은 (이 경우) 4자 너비로 지정됩니다. 필요에 따라 조정하세요. 공백은 공백 ""(말장난 의도 없음)으로 채워지며 탭 문자는 사용되지 않습니다. 그러나 부동 소수점 숫자도 형식이 변경되므로 이 방법이 적합한지 확인하세요. 그렇지 않은 경우 두 번째 열을 문자열로 처리합니다.

awk 'NR>1 {printf("%4i %s\n",$1,$2);}' fort.75 > newfort.75

관련 정보