2013-06-26 2 views
0

Cygwin에서이 행에 대해 2 가지 다른 결과가 표시됩니다. XP, 열 (올바른 출력) 및 Win7에있는 모든 하나의 긴 줄에텍스트 서식 지정 차이

awk '{$0=sprintf("%.1f%.1f%4s", $1,$2,$3);gsub(/ /,"0");gsub(/\./,"")}1' /cygdrive/e/$1.txt > /cygdrive/e/$1.bod 

감사

입력 : (35030035.txt)

4.65 2.38 15 
    4.71 3.36 775 
    3.52 3.03 53 
    4.05 3.33 71 
    3.22 2.99 346 

XP 출력 : (35030035 .bod)올바른 결과입니다.

47240015 
47340775 
35300053 
40330071 
32300346 

Win7에 출력 : 광고 터미네이터 엉망 같이 (35030035.bod)는

4724001547340775353000534033007132300346 

답변

1

보인다. sprintf 함수에서 명시적인 \n을 시도하십시오. sprintf("%.1f%.1f%4s\n", $1,$2,$3)

또는 대신 print $01

. awk

awk {$0=sprintf("%.1f%.1f%4s", $1,$2,$3);gsub(/ /,"0");gsub(/\./,"");print $0}' 

대체 사용 RS 변수는 새로운 라인을 설정한다.