Awk print добавляет символ control-m в конце строки

Я использую awk в bash script и делаю что-то вроде:

awk -F, -v result_file=$2'{
print $2 $1 > result_file
}' $data_file

В выходном файле я получаю символ -M '^ M' в конце каждой строки. Что не так?

Ответ 1

В разделителе записей автоматически устанавливается окончание строки текущей системы, LF (\n) в системах на базе Unix, CR-LF (\r\n) в системах MS и CR (\r) на Mac OS до Mac OS X. Поэтому для работы с файлом, записанным в системе MS, установите разделитель записей соответствующим образом, в вашем случае:

awk -v RS='\r\n' ...