Как префикс обратной косой черты для вывода

Это мой входной файл.

3400,2 3400,27 3400,DC 3400,TF 5600,KA 5600,KN 5600,TF 0313,EX 0313,EY 0313,EZ 0313,FD 0313,FE 0313,JB 0313,JC 0313,KG 0313,T8 

Я хочу, чтобы мой результат был

 400,2\|3400,27\|3400,DC\|3400,TF\|5600,KA\|5600,KN\|5600,TF\|0313,EX\|0313,EY\|0313,EZ\|0313,FD\|0313,FE\|0313,JB\|0313,JC\|0313,KG\|0313,T8 

Я запускаю код следующим образом:

 cat f.txt | tr '\n' "\|" 3400,2|3400,27|3400,DC|3400,TF|5600,KA|5600,KN|5600,TF|0313,EX|0313,EY|0313,EZ|0313,FD|0313,FE|0313,JB|0313,JC|0313,KG|0313,T8 cat f.txt | tr '\n' "\\\|" 3400,2\3400,27\3400,DC\3400,TF\5600,KA\5600,KN\5600,TF\0313,EX\0313,EY\0313,EZ\0313,FD\0313,FE\0313,JB\0313,JC\0313,KG\0313,T8 

Как я могу достичь ожидаемого результата?

Вы можете сделать это разными способами, используя множество инструментов, например, с awk :

 cat f.txt | awk 'BEGIN{ORS="\\|"}1' 

@don_cristi правильно заметил, что «Это будет печатать конечную \ | и не возвращать новую строку», так что вот версия, которая исправляет оба варианта, если это необходимо для вашего прецедента:

 awk 'p{printf "%s\\|",p} {p=$0} END{print p}'