Eu meio que encontrei uma solução, mas não é particularmente elegante. Eu decidi adicionar um pipe adicional ao segundo arquivo para entrar, já que isso me permitiu fazer algum processamento adicional para obter o formato correto.
Neste momento, os passos que preciso dar são:
# add pipe to the end of the line for ORIGINAL files only
sed -i 's/$/|/' ../original/alt.csv
--- Do join and output joined file to ../out/alt.csv ---
# match on last pipe and add a carriage return
sed -i 's/\(.*\)\|/ # add pipe to the end of the line for ORIGINAL files only
sed -i 's/$/|/' ../original/alt.csv
--- Do join and output joined file to ../out/alt.csv ---
# match on last pipe and add a carriage return
sed -i 's/\(.*\)\|/%pre%\r/' ../out/alt.csv
# remove carriage return where join occurred (the use of pipe is simply to locate carriage return) and replace with pipe
sed -i 's/\r|/|/' ../out/alt.csv
# remove all blank lines
sed -i '/^\s*$/d' ../out/alt.csv
# remove pipe at the end of the line of output file and add a carriage return
sed -i 's/[^\r\n].$/\r/' ../out/alt.csv
\r/' ../out/alt.csv
# remove carriage return where join occurred (the use of pipe is simply to locate carriage return) and replace with pipe
sed -i 's/\r|/|/' ../out/alt.csv
# remove all blank lines
sed -i '/^\s*$/d' ../out/alt.csv
# remove pipe at the end of the line of output file and add a carriage return
sed -i 's/[^\r\n].$/\r/' ../out/alt.csv
Se houver uma maneira fácil de conseguir isso, ficarei feliz em ouvir.