我在bash腳本中使用AWK的末尾添加一個CONTROL-M的性格和做類似:AWK打印在行
awk -F, -v result_file=$2'{
print $2 $1 > result_file
}' $data_file
在輸出文件,我得到一個控制-M「^ M'字符在每行的末尾。哪裏不對?
我在bash腳本中使用AWK的末尾添加一個CONTROL-M的性格和做類似:AWK打印在行
awk -F, -v result_file=$2'{
print $2 $1 > result_file
}' $data_file
在輸出文件,我得到一個控制-M「^ M'字符在每行的末尾。哪裏不對?
的記錄分隔符被自動設置爲當前系統的行結束,LF(\n
)在基於Unix的系統,CR-LF(\r\n
)在MS系統和CR(\r
)在Mac OS之前Mac OS X的所以對記錄設置的記錄分隔適當的MS系統上的文件時,你的情況:
awk -v RS='\r\n' ...
Mac OS X是一個類似Unix的系統,它使用'\ n'行尾。 Mac OS 9不是基於Unix並使用'\ r'結尾。 –
@JonathanLeffler:你說得對,謝謝你的糾正。 – Thor
輸入文件可能包含^ M。如果是這樣,請從那裏刪除它。 – Guru
您是否在PC上創建了數據文件?它的行結尾是^ M^J,而Unix只使用^ J。 – Barmar
將記錄分隔符設置爲CR-LF,即'awk -v RS ='\ r \ n'...'。 – Thor